我正在尝试使用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)合并。
答案 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())
现在它是单行。