Python — Pandas

官方文档 https://pandas.pydata.org/docs/index.html

数据集 #

列几个数据集用于测试:

  1. https://learn.microsoft.com/en-us/power-bi/create-reports/sample-financial-download (Financial.xlsx)
  2. https://www.gairuo.com/file/data/dataset/team.xlsx (team.xlsx)

查看数据 #

df.head() # 头部 5 条
df.tail() # 尾部 5 条
df.sample() # 随机查看 5 条

df.shape # (100, 6) 查看行数和列数
df.info() # 查看索引、数据类型和内存信息
df.describe() # 查看数值型列的汇总统计
df.dtypes # 查看各字段类型
df.axes # 显示数据行和列名
df.columns # 列名

选取数据 #

选择列 #

df["Q1"] # 指定列
df.Q1 # 同上一行

df[['team', 'Q1']] # 只看这两列
df.loc[:, ['team', 'Q1']] # 同上一行

选择行 #

df[df.index == 'Liver'] # 根据索引名称

# 根据自然索引
df[0:3] # 取前三个
df[0:10:2] # 前 10 个每隔两个取一个
df.iloc[:10, :] # 前 10 个

指定行和列 #

df.loc['Ben', 'Q1':'Q4']
df.loc['A': 'D', 'Q1': 'Q4']

条件选择 #

df[df.Q1 > 90] # Q1 大于 90 的
df[df.team == 'C'] # team 列为 'C' 的
df[df.index == 'Oscar'] # 指定 index 名称

运算数据 #

排序 #

df.sort_values(by="Q1", ascending=False) # 按 Q1 降序排列, default is True

分组聚合 #

df.groupby('team').sum() # 求和
df.groupby('team').mean() # 求平均
df.groupby('team').agg({'Q1': sum, 'Q2': count, 'Q3': 'mean', 'Q4': max}) # agg 很强大

数据反转 #

df.T 应该能玩出花。

数据降维 #

df.groupby('team').sum().stack()
df.groupby('team').sum().unstack()

举个例子:

>>> df_single_level_cols
     weight height
cat       0      1
dog       2      3
>>> df_single_level_cols.stack()
cat  weight    0
     height    1
dog  weight    2
     height    3
dtype: int64

数据统计 #

df.mean()
df.corr() # 返回列与列之间的相关系数
df.max()
df.min()
df.std() # 标准差
df.var() # 方差
df.mode() # 众数
df.median() # 中位数

绘图 #

df.plot()

导出 #

支持 CSV 、 Excel 、 HTML 等常见格式。

MultiIndex #

参考 #

深入浅出Pandas

本文共 419 字,上次修改于 Oct 18, 2023
相关标签: Python