熊猫:多条滚动意味着一条线

时间:2017-10-01 07:36:15

标签: pandas pandas-groupby

我正在尝试使用groupby创建两个新的滚动方式列。我目前有这两行完全符合我的要求。

data_df['mean_7'] = data_df.groupby('athlete_id')['A'].apply(lambda x : x.rolling(center = False, window = 7, min_periods = 1).mean())
data_df['mean_28'] = data_df.groupby('athlete_id')['A'].apply(lambda x : x.rolling(center = False, window = 28, min_periods = 1).mean())

我想将它们组合成一行。我到目前为止:

data_df.groupby('athlete_id')['A'].apply(lambda x : [x.rolling(center = False, window = 7, min_periods = 1).mean(), x.rolling(center = False, window = 28, min_periods = 1).mean()])

这不太正确,因为我找不到一个简单的方法让返回的结果与原始DF(data_df)合并。

1 个答案:

答案 0 :(得分:0)

将它放在一行中的目的是什么?

你可以这样做:

data_df['mean_7'], data_df['mean_28'] = data_df.groupby('athlete_id')['A'].apply(lambda x : x.rolling(center = False, window = 7, min_periods = 1).mean()), data_df.groupby('athlete_id')['A'].apply(lambda x : x.rolling(center = False, window = 28, min_periods = 1).mean())

现在它是单行。