2017-04-07 39 views
1

假設我有一個看起來像這樣的數據:如何改變我的熊貓數據框結構?

item | date | status 

A  12-01 E 
A  12-02 E 
A  12-03 B 
A  12-04 B 
B  12-01 E 
B  12-02 B 
B  12-03 S 
B  12-04 S 
C  12-03 E 
C  12-04 E 

現在我想要做的是使數據如下:

item | 12-01 | 12-02 | 12-03 | 12-04 

A  E   E  B  B 
B  E   B  S  S 
C       E  E 

因此,在總結,我想使每一行作爲一個項目的歷史。 我聽說這被稱爲'數據透視',但我不確定熊貓做這個「輕鬆」。

任何人都可以幫助我嗎?

回答

3

您可以使用pivot

df = df.pivot(index='item', columns='date', values='status') 
print (df) 
date 12-01 12-02 12-03 12-04 
item       
A  E  E  B  B 
B  E  B  S  S 
C  None None  E  E 

如果重複在itemdate使用pivot_table與像','.joinsum一些聚合函數:

print (df) 
    item date status 
0  A 12-01  E <-duplicates A, 12-01 
1  A 12-01  C <-duplicates A, 12-01 
2  A 12-02  E 
3  A 12-03  B 
4  A 12-04  B 
5  B 12-01  E 
6  B 12-02  B 
7  B 12-03  S 
8  B 12-04  S 
9  C 12-03  E 
10 C 12-04  E 

df = df.pivot_table(index='item', columns='date', values='status', aggfunc=','.join) 
print (df) 
date 12-01 12-02 12-03 12-04 
item       
A  E,C  E  B  B 
B  E  B  S  S 
C  None None  E  E