精选 Pandas 常用指令与核心速查备忘单,涵盖高频用法、配置参数与实用技巧。 Pandas 是 Python 中强大的数据分析与结构化操作库。本备忘单为数据科学初学者提供常用的 API 快捷速查参考。
开始使用前,需先导入 Pandas 模块:
import pandas as pd
| 方法/代码 | 功能描述 |
|---|---|
pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]}) |
从 Python 字典创建 DataFrame |
pd.DataFrame(data=[{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]) |
从字典列表创建 DataFrame |
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() |
删除包含任意缺失值 (NaN) 的行 |
df.dropna(axis=1) |
删除包含任意缺失值 (NaN) 的列 |
df.fillna(0) |
将所有缺失值 (NaN) 填充替换为 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]) |
纵向拼接多个 DataFrame 的行 |
pd.concat([df1, df2], axis=1) |
横向拼接多个 DataFrame 的列 |
pd.merge(df1, df2, on='key') |
基于指定公共键内联结 (Merge) |
pd.merge(df1, df2, left_on='key1', right_on='key2') |
基于左右两侧不同键进行联结 |
df1.join(df2, lsuffix='_left', rsuffix='_right') |
基于索引进行 Join 联结 |
| 方法/代码 | 功能描述 |
|---|---|
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) |
对指定列元素应用 Lambda 函数 |
df.applymap(str) |
对 DataFrame 每一个元素映射指定类型函数 |
df['col1'].map({'a': 1, 'b': 2}) |
字典映射转换值 |
df['col1'].replace('a', 1) |
替换指定的值 |
| 方法/代码 | 功能描述 |
|---|---|
df['date'] = pd.to_datetime(df['date']) |
转换为 Datetime 时间类型 |
df['year'] = df['date'].dt.year |
提取年份信息 (Year) |
df['month'] = df['date'].dt.month |
提取月份信息 (Month) |
df['day'] = df['date'].dt.day |
提取天数信息 (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 用于数据库交互 |
engine = create_engine('sqlite:///:memory:') |
创建 SQL 数据库连接引擎 |
df.to_sql('table_name', engine) |
将 DataFrame 写入 SQL 数据库表 |
df = pd.read_sql('table_name', engine) |
从 SQL 数据库表中查询加载 DataFrame |