1. 基本操作
功能描述 | 代码示例 | 说明 |
---|---|---|
创建DataFrame | df = pd.DataFrame(data, columns=[列名列表]) | 从字典、列表或数组创建DataFrame |
读取CSV文件 | df = pd.read_csv('文件路径.csv') | 从CSV文件加载数据 |
查看前N行 | df.head(n) | 默认显示前5行 |
查看后N行 | df.tail(n) | 默认显示后5行 |
查看基本信息 | df.info() | 显示列名、非空值数和数据类型 |
查看统计摘要 | df.describe() | 数值列的统计信息(均值、标准差等) |
2. 数据筛选与选择
功能描述 | 代码示例 | 说明 |
---|---|---|
选择单列 | df['列名'] 或 df.列名 | 返回Series(单列数据) |
选择多列 | df[['列名1', '列名2']] | 返回新的DataFrame |
按行索引选择 | df.loc[行索引] | 通过标签选择行 |
按位置选择行 | df.iloc[行位置] | 通过整数位置选择行 |
条件筛选 | df[df['列名'] > 值] | 返回满足条件的行 |
多条件筛选 | df[(条件1) & (条件2)] | 使用 & (与)、` |
按行/列切片 | df.loc[起始行:结束行, 起始列:结束列] | 类似Python切片 |
3. 数据处理
功能描述 | 代码示例 | 说明 |
---|---|---|
添加新列 | df['新列'] = 值或计算表达式 | 直接赋值或基于现有列计算 |
删除列 | df.drop('列名', axis=1, inplace=True) | axis=1 表示列,inplace 直接修改原数据 |
删除行 | df.drop(行索引, axis=0) | axis=0 表示行 |
填充缺失值 | df.fillna(值) 或 df.fillna({'列名': 值}) | 用指定值填充NaN |
删除缺失值 | df.dropna() | 删除包含NaN的行或列 |
替换值 | df.replace(旧值, 新值) | 全局替换 |
重命名列 | df.rename(columns={'旧列名': '新列名'}) | 修改列名 |
4. 数据统计与聚合
功能描述 | 代码示例 | 说明 |
---|---|---|
求和 | df.sum() 或 df['列名'].sum() | 按列或行求和 |
求平均值 | df.mean() | 计算均值 |
分组聚合 | df.groupby('列名')['聚合列'].agg(函数) | 如 agg(['mean', 'sum']) |
唯一值统计 | df['列名'].unique() 或 df['列名'].nunique() | 返回唯一值或唯一值数量 |
值计数 | df['列名'].value_counts() | 统计每个值的出现次数 |
5. 数据排序与连接
功能描述 | 代码示例 | 说明 |
---|---|---|
按列排序 | df.sort_values('列名', ascending=False) | ascending 控制升序/降序 |
按多列排序 | df.sort_values(['列1', '列2']) | 先按列1排序,再按列2排序 |
合并DataFrame(横向) | pd.concat([df1, df2], axis=1) | 按列合并(axis=1) |
合并DataFrame(纵向) | pd.concat([df1, df2], axis=0) | 按行合并(axis=0) |
连接(类似SQL JOIN) | pd.merge(df1, df2, on='键列', how='inner') | how 可选inner/left/right/outer |
6. 其他实用操作
功能描述 | 代码示例 | 说明 |
---|---|---|
重置索引 | df.reset_index(drop=True) | drop=True 避免旧索引成为新列 |
设置索引列 | df.set_index('列名') | 将指定列设为索引 |
应用函数 | df['列名'].apply(lambda x: 函数(x)) | 对列中每个元素应用函数 |
保存到CSV | df.to_csv('路径.csv', index=False) | index=False 避免保存索引列 |
保存特定的列到csv | df[['列名1','列名2']].to_csv('selected_columns.csv', index=False) | 选中特定的行形成df |