2017-10-01 1 views
0

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

나는 한 줄로 조합하고 싶습니다. 이 꽤 잘 내가 반환 된 결과가 원래의 DF (data_df)와 합병이 할 수있는 쉬운 방법을 찾을 수없는

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

: 나는 멀리로 가지고있다.

답변

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

지금은 하나의 라인입니다.

+0

고마워요. 정확히 내가 찾고 있었던 것이 었습니다. 더 빨리 할 수 ​​있을지 궁금했습니다. – warwickh