2

新しい列が各「Mod_ID_x」の「val」の拡張平均/中央値である、以下の pandas DataFrame に列を作成するにはどうすればよいでしょうか。これを時系列データで、'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)

パンダのデータフレーム

4

1 に答える 1

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
于 2013-10-27T07:57:53.943 に答える