Pandas 是一个强大的 Python 数据分析和操作库。本速查表为 Pandas 初学者提供快速参考。
你需要导入 pandas 才能开始:
import pandas as pd
- | - |
---|---|
pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]}) |
从字典创建 |
pd.DataFrame(data=[{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]) |
从字典列表创建 |
pd.read_csv('file.csv') |
从 CSV 文件读取 |
pd.read_excel('file.xlsx') |
从 Excel 文件读取 |
- | - |
---|---|
df.head() |
前 5 行 |
df.tail() |
后 5 行 |
df.shape |
行数和列数 |
df.info() |
DataFrame 信息 |
df.describe() |
描述性统计 |
df.columns |
列名 |
df.index |
索引 |
df.dtypes |
列数据类型 |
- | - |
---|---|
df['col1'] |
选择列 |
df[['col1', 'col2']] |
选择多列 |
df.loc[0] |
按索引选择行 |
df.loc[:, 'col1'] |
选择 'col1' 的所有行 |
df.iloc[0] |
按位置选择行 |
df.iloc[0, 1] |
选择特定值 |
df[df['col1'] > 2] |
根据条件选择行 |
- | - |
---|---|
df.dropna() |
删除包含任何缺失值的行 |
df.dropna(axis=1) |
删除包含任何缺失值的列 |
df.fillna(0) |
用 0 替换缺失值 |
df.drop_duplicates() |
删除重复行 |
df.rename(columns={'old_name': 'new_name'}) |
重命名列 |
df.astype('int') |
更改数据类型 |
- | - |
---|---|
df['col3'] = df['col1'] + df['col2'] |
添加新列 |
df.drop('col1', axis=1) |
删除列 |
df.append(new_row) |
添加新行 |
df.insert(2, 'new_col', new_data) |
在位置 2 插入新列 |
- | - |
---|---|
pd.concat([df1, df2]) |
连接行 |
pd.concat([df1, df2], axis=1) |
连接列 |
pd.merge(df1, df2, on='key') |
根据键合并 DataFrame |
pd.merge(df1, df2, left_on='key1', right_on='key2') |
根据不同键合并 |
df1.join(df2, lsuffix='_left', rsuffix='_right') |
连接 DataFrame |
- | - |
---|---|
df['col1'].sum() |
列中值的总和 |
df['col1'].mean() |
列中值的平均值 |
df['col1'].count() |
列中值的数量 |
df['col1'].min() |
列中最小值 |
df['col1'].max() |
列中最大值 |
df['col1'].std() |
标准差 |
df['col1'].var() |
方差 |
df.groupby('col1').sum() |
分组并求和 |
df.groupby('col1').mean() |
分组并求平均值 |
df.groupby(['col1', 'col2']).count() |
按多列分组 |
- | - |
---|---|
df.apply(np.sqrt) |
对所有值应用函数 |
df['col1'].apply(lambda x: x ** 2) |
对列应用函数 |
df.applymap(str) |
对 DataFrame 元素应用函数 |
df['col1'].map({'a': 1, 'b': 2}) |
映射值 |
df['col1'].replace('a', 1) |
替换值 |
- | - |
---|---|
df['date'] = pd.to_datetime(df['date']) |
转换为日期时间 |
df['year'] = df['date'].dt.year |
提取年份 |
df['month'] = df['date'].dt.month |
提取月份 |
df['day'] = df['date'].dt.day |
提取日期 |
df.set_index('date', inplace=True) |
设置日期为索引 |
- | - |
---|---|
df.to_csv('file.csv') |
保存 DataFrame 到 CSV |
df = pd.read_csv('file.csv') |
从 CSV 加载 DataFrame |
df.to_excel('file.xlsx') |
保存 DataFrame 到 Excel |
df = pd.read_excel('file.xlsx') |
从 Excel 加载 DataFrame |
from sqlalchemy import create_engine |
导入 SQLAlchemy 进行 SQL 操作 |
engine = create_engine('sqlite:///:memory:') |
创建 SQL 引擎 |
df.to_sql('table_name', engine) |
保存到 SQL 表 |
df = pd.read_sql('table_name', engine) |
从 SQL 表加载 |