假设我们有一个名为df的数据框,包含日期、销售量和价格。要按月份对销售量和价格分组,并计算两列的平均值,再将销售量的平均值除以价格的平均值。
可以按以下方式实现:
import pandas as pd
# 创建示例数据框
df = pd.DataFrame({
'date': ['2021-01-01', '2021-01-02', '2021-02-01', '2021-02-02'],
'sales': [100, 200, 150, 250],
'price': [10, 20, 15, 25]
})
# 将date列转换为日期格式
df['date'] = pd.to_datetime(df['date'])
# 将date列设为索引
df.set_index('date', inplace=True)
# 按月份分组并计算平均值
monthly_avg = df.groupby(pd.Grouper(freq='M')).mean()
# 计算销售量的平均值除以价格的平均值
result = monthly_avg['sales'] / monthly_avg['price']
# 打印结果
print(result)
输出结果为:
date
2021-01-31 10.0
2021-02-28 10.0
Freq: M, dtype: float64
这表示在2021年1月和2月,销售量的平均值分别是100和200,价格的平均值分别是10和20,因此销售量的平均值除以价格的平均值都是10。