【问题标题】:How do you calculate expanding mean on time series using pandas?您如何使用 pandas 计算时间序列的扩展均值?
【发布时间】:2013-11-06 00:29:01
【问题描述】:

您将如何在下面的 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)

【问题讨论】:

    标签: python-2.7 pandas dataframe time-series


    【解决方案1】:

    很难在您的 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
    

    【讨论】:

      猜你喜欢
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多