返回

pandas 花样取数指南(上)

人工智能

作为数据分析的得力助手,pandas 为我们提供了丰富的手段来处理和获取数据。在庞大的数据海洋中穿梭自如,高效筛选和查看数据是必备技能。本指南将带领你领略 pandas 取数的五花八门,助你轻松驾驭数据世界。

基础取数法门

1. 行列选取

最基础的取数方式莫过于行列选取。使用 ilocloc 索引器,你可以精准定位特定行列的数据。例如:

df.iloc[0:2, 1:3]  # 选择前两行,第二、三列数据
df.loc[0:2, ['姓名', '年龄']]  # 选择前两行,'姓名''年龄'列数据

2. 条件筛选

当需要根据条件筛选数据时,可以使用 query 方法。query 支持强大的布尔表达式,让你灵活定义筛选条件。例如:

df.query('年龄 > 30')  # 筛选出年龄大于 30 的行
df.query('姓名.str.contains("王")')  # 筛选出姓名包含 "王" 字的行

3. 布尔掩码

布尔掩码也是一种灵活的筛选方式。通过创建布尔掩码,你可以根据任意条件对数据进行筛选。例如:

mask = df['年龄'] > 30
df[mask]  # 筛选出年龄大于 30 的行

进阶取数技巧

1. 分组取数

当需要对数据进行分组操作时,groupby 方法是你的利器。它可以根据特定列或多个列对数据进行分组,并对分组数据进行统计分析或其他操作。例如:

df.groupby('性别').count()  # 统计每个性别的行数
df.groupby('性别')['年龄'].mean()  # 计算每个性别的平均年龄

2. 合并取数

当需要将不同数据源中的数据合并在一起时,mergejoin 方法可以派上用场。它们支持基于不同列或键的合并操作,让你轻松整合数据。例如:

df1.merge(df2, on='id')  # 根据 'id' 列合并两个数据框
df1.join(df2, how='left')  # 以左连接方式合并两个数据框

3. 时序取数

对于时序数据,pandas 提供了专门的时序索引器,可以方便地对时间序列数据进行切片、重采样和其他操作。例如:

df.loc['2023-01-01':'2023-01-10']  # 切取特定时间范围的数据
df.resample('M').mean()  # 按月重采样并计算平均值

总结

在数据分析的世界中,掌握 pandas 的花样取数技巧至关重要。通过灵活运用这些方法,你可以轻松驾驭庞杂的数据,从中提取有价值的信息。本指南所介绍的基础和进阶技巧只是 pandas 取数宝库中的一隅,探索更深层次的可能性,你的数据分析之旅将更加精彩。