2017-12-25 12 views
2

이 같은 내 dataframe 모습, 내가 및 GROUPBY 기간, LOC 예상 O (행과 열 등의 자극으로 별개의 기간) dataframe 모양을 변경하려는Pandas- 재편의 dataframe 및 GROUPBY

loc   prod period qty   
0 Customer10 FG1 2483 200.000000  
1 Customer10 FG1 2484 220.000000  
2 Customer10 FG1 2485 240.000000  
3 Customer10 FG1 2486 260.000000  
4 Customer11 FG1 2483 300.000000  
5 Customer11 FG1 2484 320.000000  
6 Customer11 FG1 2485 340.000000  
7 Customer11 FG1 2486 360.000000  
8 Customer12 FG1 2483 400.000000  
9 Customer12 FG1 2484 420.000000  
10 Customer12 FG1 2485 440.000000  
11 Customer12 FG1 2486 460.000000  
12 Customer13 FG1 2483 500.000000  
13 Customer13 FG1 2484 520.000000  
14 Customer13 FG1 2485 540.000000  
15 Customer13 FG1 2486 560.000000  
16 Customer9 FG1 2483 100.000000  
17 Customer9 FG1 2484 120.000000  
18 Customer9 FG1 2485 140.000000  
19 Customer9 FG1 2486 160.000000  

/P

  2483 2484 2485 2486 
    FG1 1500 1580 1660 1740 

답변

2

당신은 pivot_table 사용할 수 있습니다

In [37]: df.pivot_table(index='prod', columns='period', values='qty', aggfunc='sum') 
Out[37]: 
period 2483 2484 2485 2486 
prod 
FG1  1500.0 1600.0 1700.0 1800.0 

또는

In [39]: df.groupby(['prod','period'])['qty'].sum().unstack() 
Out[39]: 
period 2483 2484 2485 2486 
prod 
FG1  1500.0 1600.0 1700.0 1800.0 

UPDATE :

방법 최대 (수량)의 기간을 얻을?

In [69]: pvt = df.pivot_table(index='prod', columns='period', values='qty', aggfunc='sum') 

In [70]: pvt 
Out[70]: 
period 2483 2484 2485 2486 
prod 
FG1  1500.0 1600.0 1700.0 1800.0 

In [71]: pvt.idxmax(axis=1) 
Out[71]: 
prod 
FG1 2486 
dtype: int64 
, 원래 DF에서 또는 선회 하나, 어떻게 최대 (수량)
+0

감사를 의미? –

+0

@NikhilPola의 기간을 얻을 – MaxU

+0

피벗 된 테이블, thnks –