你如何使用熊猫计算扩展的时间序列均值?

时间:2013-10-27 03:41:42

标签: python-2.7 pandas dataframe time-series

如何在下面的pandas DataFrame中创建一个列,其中新列是每个'Mod_ID_x'的'val'的扩展均值/中值。想象一下,好像是时间序列数据和'ID'1-2在第1天,'ID'3-4在第2天。

我已经尝试过各种我能想到的方式,但似乎无法做到这一点。

left4 = pd.DataFrame({'ID': [1,2,3,4],'val': [10000, 25000, 20000, 40000],
'Mod_ID': [15, 35, 15, 42],'car': ['ford','honda', 'ford', 'lexus']})    


right4 = pd.DataFrame({'ID': [3,1,2,4],'color': ['red', 'green', 'blue', 'grey'], 'wheel': ['4wheel','4wheel', '2wheel', '2wheel'], 
                      'Mod_ID': [15, 15, 35, 42]})

df1 = pd.merge(left4, right4, on='ID').drop('Mod_ID_y', axis=1)

Pandas DataFrame

1 个答案:

答案 0 :(得分:2)

很难在DataFrame上正确测试,但您可以使用以下内容:

>>> df1["exp_mean"] = df1[["Mod_ID_x","val"]].groupby("Mod_ID_x").transform(pd.expanding_mean)
>>> df1
   ID  Mod_ID_x    car    val  color   wheel  exp_mean
0   1        15   ford  10000  green  4wheel     10000
1   2        35  honda  25000   blue  2wheel     25000
2   3        15   ford  20000    red  4wheel     15000
3   4        42  lexus  40000   grey  2wheel     40000