在数据分析中,经常需要对数据帧(DataFrame)进行多种聚合操作,例如计算累计和(cumulative sum)和计数(count)。Pandas 是一个强大的数据处理库,可以轻松实现这些操作。
假设我们有一个数据帧 df
,包含以下列:date
, sales
, customer_id
。
import pandas as pd
# 创建示例数据帧
data = {
'date': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04'],
'sales': [100, 200, 150, 300],
'customer_id': [1, 2, 1, 3]
}
df = pd.DataFrame(data)
# 计算累计和(cumsum)和计数(count)
df['cumulative_sales'] = df['sales'].cumsum()
df['sales_count'] = df.groupby('date')['sales'].transform('count')
print(df)
date sales customer_id cumulative_sales sales_count
0 2023-01-01 100 1 100 1
1 2023-01-02 200 2 300 1
2 2023-01-03 150 1 450 1
3 2023-01-04 300 3 750 1
cumsum()
方法计算了 sales
列的累计和。groupby()
和 transform('count')
方法计算了每个日期的销售记录数。原因:数据中可能存在 NaN 值,导致累计和计算失败。
解决方法:
df['sales'].fillna(0).cumsum()
原因:同一天有多条记录,导致计数不准确。
解决方法:
df['sales_count'] = df.groupby('date')['sales'].transform('count')
通过上述方法,可以有效地处理数据帧中的多种聚合操作,并解决常见的问题。
领取专属 10元无门槛券
手把手带您无忧上云