【问题标题】:Timeseries: Groupby and calculate variance时间序列:分组并计算方差
【发布时间】:2020-08-02 22:47:49
【问题描述】:

我有以下带有时间序列数据的数据框:

df = pd.DataFrame(columns = ['id', 'value'])
df['value'] =[9, 16, 10, 12, 11, 14]
df['id'] = [1, 1, 1, 2, 2, 2]

对于每个时间序列(由“id”列定义,我想计算方差以找到完全不变或变化很小的时间序列。

最终的数据框应如下所示:

df_end = pd.DataFrame(columns = ['id','value', 'var'])
df_end['value'] =[9, 16, 10, 12, 11, 14]
df_end['id'] = [1, 1, 1, 2, 2, 2]
df_end['var'] = [21, 21, 21, 2.3, 2.3, 2.3]

我试过了:

df.groupby(df['id']).var()

这给了我值,但我无法以正确的形式将其放入 df 中。我敢肯定,有一个我还不知道的方便的功能!

感谢您的帮助!

【问题讨论】:

    标签: pandas time-series pandas-groupby variance


    【解决方案1】:

    使用GroupBy.transform 指定列value

    df['var'] = df.groupby('id')['value'].transform('var')
    print (df)
       id  value        var
    0   1      9  14.333333
    1   1     16  14.333333
    2   1     10  14.333333
    3   2     12   2.333333
    4   2     11   2.333333
    5   2     14   2.333333
    

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 1970-01-01
      • 2020-09-20
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多