DataFrame.resample('M')不会给出月平均值,而只是月总和
我有一个名为 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 个回答
查看文档 http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.DataFrame.resample.html。你需要指定你想要的重采样方式,比如求和(sum)或者平均值(mean)等。你还可以按字段来指定。默认情况下是求平均值,但不太清楚为什么你得到的是求和的结果。