DataFrame.resample('M')不会给出月平均值,而只是月总和

1 投票
1 回答
1801 浏览
提问于 2025-04-18 00:52

我有一个名为 df_pivoted 的表格,内容如下:
cost    cost    cost    val1    val1    val1
user_id          1    2    3    1    2    3
timestamp                  
01/01/2011    1         100    3       5
01/02/2011         20          8   
01/07/2012    19          57      
01/11/2012          3100          49
21/12/2012       240          30   
14/09/2013    21          63      
01/12/2013          3200          51

我想计算每个月的平均成本,但使用 df_monthly = pivoted.resample('M') 这个语句时,得到的结果不是平均值,而只是每个月的总和。另外,我还想知道如何计算与每个用户相关的每个字段(比如 'cost'、'val1' 等)的平均成本。

用来生成上述表格的代码是:

import pandas as pd

newnames = ['timestamp','user_id', 'cost', 'val1','val2', 'val3','code']
df = pd.read_csv('mytest.csv', names = newnames, header = False, parse_dates=True, dayfirst=True)
df['timestamp'] = pd.to_datetime(df['timestamp'], dayfirst=True) 
pivoted = df.pivot('timestamp', 'user_id')

谢谢你的帮助。

1 个回答

1

查看文档 http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.DataFrame.resample.html。你需要指定你想要的重采样方式,比如求和(sum)或者平均值(mean)等。你还可以按字段来指定。默认情况下是求平均值,但不太清楚为什么你得到的是求和的结果。

撰写回答