파이썬 2.7을 사용 중이며 데이터 프레임에서 몇 개월 동안 특정 요약 메트릭을 작성 중입니다. 각 평균 (jan_avg_prod_count, feb_avg_prod_count, etc ...)은 출력 파일에 추가됩니다.for 루프 내에서 변수를 만들어 데이터 프레임을 할당하는 방법은 무엇입니까?
My main df:
month_num prod_desc prod_count
01 A 52
01 B 43
01 C 38
02 A 21
02 B 24
02 c 18
내가 쓴 것은 데이터 프레임의 평균 prod_count를 월별로 요약 한 것입니다. 지금, 나는 수동으로 다음과 매달 반복으로 매달 집계하고 있습니다 :
jan_df = df[df.month_num == '01']
jan_df = df.groupby(['prod_desc']).agg({'prod_count': np.mean})
jan_df = df.rename(columns = {'prod_count':'jan_avg_prod_count'})
내가 나는 단지 하나 개의 코드 블록을 가질 수 있도록 루프에 넣고되고 싶지. 내 접근 방식은 범위 1-12 통해 반복하고 위의 매달마다 내 주요 df 하위 집합입니다. 그러나 동적 인 변수 이름에 데이터 프레임을 생성하고 할당하는 방법에 대해 고민하고 있습니다.
올바른 데이터 프레임 사전을 만든 다음 할당하려고합니다.
month_dfs = {}
for x in range(1,13):
month_dfs[x] = "%s_df" % calendar.month_abbr[x].lower()
loop_month_num = '{num:02d}'.format(num = x)
month_dfs[x] = df[df.month_num == loop_month_num]
위의 값은 올바른 값의 사전을 생성하지만 부분 집합 데이터 프레임에 대한 할당이 올바르게 작동하지 않습니다. 내가 month_dfs를 인쇄하는 경우
내가 기대하는 것을 얻을 :
jan_df
feb_df
mar_df
apr_df
may_df
jun_df
jul_df
aug_df
sep_df
oct_df
nov_df
dec_df
는하지만, jan_df가
을 만들어지지 않음을. 오히려 month_dfs 사전에 하위 집합 데이터 프레임이 채워집니다.내가하고있는 일이 정확하지 않다는 것을 이해합니다. 월간 데이터 프레임을 만드는 방법을 모르겠습니다. 조언이나 새로운 방향에 감사드립니다.
* "올바르게 작동하지 않습니다."* 정확히 무엇을 의미합니까? 예제를 제공 할 수 있습니까? – jonrsharpe
예제를 정리하고 출력을 추가했습니다. – analyticsPierce
'df.groupby ([ 'month_num', 'prod_desc'])의 문제점은 무엇입니까? – U2EF1