2017-10-01 7 views
0

私はgroupbyを使用してローリング手段の2つの新しい列を作成しようとしています。私は現在、私が欲しいものを正確に行うこれら2つのラインを持っています。パンダ:1行に複数のローリング手段

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()) 

私はそれらを1行にまとめたいと思います。

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

1行に入れる目的は何ですか?

あなたが行うことができます

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()) 

、今では1行です。

+0

ありがとうございました。私が探していたものです。それが速くなるのであれば私はちょうど興味があった。 – warwickh

関連する問題