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联用,可对分组后数据执行多种(如sum,mean,max,自定义函数)聚合操作。
六、数据变形与合并
-
pd.concat([df1, df2], axis=0/1): 沿轴(行axis=0或列axis=1)拼接多个DataFrame。 -
pd.merge(left, right, how=‘inner’, on=‘key’): 基于一个或多个键连接两个表。how参数支持left,right,outer,inner(默认)等连接方式。可使用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指定聚合函数(如sum,count),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())。
-
主要优化点:
-
结构化: 将零散知识点按功能模块归类,添加分级标题,逻辑更清晰。
-
修正与明确: 修正了
read_excel的函数名,明确了isna()与isNone的关系,补充了iloc、shape等常用但笔记中未提及的核心方法。 -
表述优化: 对部分方法的描述进行了精简和标准化,使其更符合官方文档的常见表述,易于后续查阅和理解。
这份整理后的笔记可以作为一份很好的快速参考手册。如果需要针对某个部分展开详细示例,我可以继续为你补充。
浙公网安备 33010602011771号