2017-09-06 4 views
1

데이터 프레임 내에서 계열 데이터가 포함 된 열로 분할 적용 연결을 시도하고 있습니다. (I는 SO 검색 한하지만 데이터 프레임 내에서 시리즈에 관련된 아무것도 발견하지 않았습니다.)DataFrame 내에서 Python Pandas 집계 데이터 데이터

데이터 프레임 :

import pandas as pd 
from pandas import Series, DataFrame 

import numpy as np 

ex = {'account': [1, 1, 1, 2, 2], 
     'subaccount': [1, 2, 3, 1, 2], 
     'account_type': ['A', 'A', 'B', 'A', 'B'], 
     'data': [(1, 2, 3), (4, 5, 6), (7, 8, 9), (1, 3, 5), (2, 4, 6)]} 

df = DataFrame(ex, columns=['account', 'subaccount', 'account_type', 'data']) 

가 그럼 난 GROUPBY 및 집계과 같이.

result = (df.groupby(['account', 'account_type']) 
      .agg({'subaccount': np.sum})) 

이 나에게

     subaccount 
account account_type 
1  A    3 
     B    3 
2  A    1 
     B    2 

을 제공하지만 내가 원하는 것은 아마 뭔가를 분명 누락

     subaccount 
account account_type 
1  A   (5, 7, 9) 
     B   (7, 8, 9) 
2  A   (1, 3, 5) 
     B   (2, 4, 6) 

이지만, 해결책은 저를 이스케이프합니다.

답변

1

이 잘 작동되도록,

result = df.groupby(['account', 'account_type'])\ 
     .apply(lambda x : [sum(y) for y in zip(*x["data"])]) 

이 큰 데이터 세트

+0

그것은 작은 데이터 세트의에 대한 속도가 느려질 수 있습니다 그러나 작동합니다. 감사합니다! –

2
>>> df.groupby(['account', 'account_type']).apply(
     lambda group: tuple(group['data'].apply(pd.Series).sum())) 
account account_type 
1  A    (5, 7, 9) 
     B    (7, 8, 9) 
2  A    (1, 3, 5) 
     B    (2, 4, 6) 
dtype: object 
관련 문제