如何移动我的pandas数据帧结构?

时间:2017-04-07 08:53:12

标签: python pandas pivot

假设我有一个如下所示的数据:

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

总而言之,我想将每一行作为项目的历史记录。 我听说这叫做'枢轴',但我不确定熊猫会“轻易”做到这一点。

任何人都可以帮我这个吗?!

1 个答案:

答案 0 :(得分:3)

您可以使用pivot

traits

如果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 item中的date重复使用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