pandas学习笔记

一、核心数据结构
  • Series: 一维带标签数组,可视为一个列。
  • DataFrame: 二维表格型数据结构,是多个共享同一索引的Series的集合。

二、数据读取与写入

  • 读取pd.read_csv()pd.read_excel()(注意:是read_excel,非read_xlsx
  • 写入df.to_csv()df.to_excel()

三、数据概览与探查

  • df.head(n)/ df.tail(n): 查看头/尾n行(默认5行)。
  • df.info(): 查看索引、数据类型、非空值数量和内存使用。
  • df.describe(): 生成数值型列的统计摘要(计数、均值、标准差、最小值、四分位数、最大值)。
  • df.shape: 获取数据形状(行数, 列数)。
  • df.columns: 获取列名。
  • df.dtypes: 查看各列数据类型。

四、数据清洗

  • 缺失值处理
    • df.isna()/ df.notna(): 检测缺失值(适用于所有类型,NaN/None都会识别)。
    • df.fillna(value, method=‘ffill’/‘bfill’): 用固定值、前向填充或后向填充缺失值。
    • df.dropna(axis=0, how=‘any’/‘all’): 按行(axis=0)或列(axis=1)删除缺失值。how=‘any’(默认)表示有任何NA就删,how=‘all’表示全部是NA才删。
  • 重复值处理
    • df.drop_duplicates(subset=[…], keep=‘first’): 删除重复行。subset指定依据列,keep决定保留第一个/最后一个或全部删除。

五、数据选择与索引

  • []操作: 选择单列(df[‘col’])或布尔索引选择行(df[df[‘col’] > 0])。
  • loc[]: 基于标签进行选择,如 df.loc[行标签, 列标签]
  • iloc[]: 基于整数位置进行选择,如 df.iloc[行位置, 列位置]
  • groupby(): 核心分组方法。按某列的一个或多个值分组,执行“拆分-应用-合并”操作。
  • agg()/ aggregate(): 聚合函数,常与groupby联用,可对分组后数据执行多种(如summeanmax,自定义函数)聚合操作。

六、数据变形与合并

  • pd.concat([df1, df2], axis=0/1): 沿轴(行axis=0或列axis=1)拼接多个DataFrame。
  • pd.merge(left, right, how=‘inner’, on=‘key’): 基于一个或多个键连接两个表。how参数支持leftrightouterinner(默认)等连接方式。可使用left_on/right_on指定不同列名。
  • df.pivot(index=‘A’, columns=‘B’, values=‘C’): 将长格式转换为宽格式,以A为索引,B中的值展开为新列,C作为填充值。不支持数据聚合
  • df.pivot_table(values, index, columns, aggfunc=‘mean’, margins=False): 功能更强的数据透视表。aggfunc指定聚合函数(如sumcount),margins可添加总计。
  • df.melt(id_vars, value_vars, var_name, value_name)pivot的逆操作,将宽格式融合为长格式。id_vars是保持不变的列,value_vars是要融合的列。

七、字符串与时间处理

  • 字符串: 通过.str访问器调用字符串方法(如df[‘col’].str.lower().str.contains().str.split())。
  • 时间
    • pd.to_datetime(): 将字符串、序列等转换为pandas的datetime64类型。
    • .dt访问器: 对datetime类型的Series提取属性或调用方法(如.dt.year.dt.month.dt.day.dt.strftime())。

主要优化点
  1. 结构化: 将零散知识点按功能模块归类,添加分级标题,逻辑更清晰。
  2. 修正与明确: 修正了read_excel的函数名,明确了isna()isNone的关系,补充了ilocshape等常用但笔记中未提及的核心方法。
  3. 表述优化: 对部分方法的描述进行了精简和标准化,使其更符合官方文档的常见表述,易于后续查阅和理解。
这份整理后的笔记可以作为一份很好的快速参考手册。如果需要针对某个部分展开详细示例,我可以继续为你补充。
posted @ 2026-05-10 20:44  溯光独立开发  阅读(21)  评论(0)    收藏  举报