重新格式化数据框列

时间:2019-10-04 00:21:33

标签: python pandas

import pandas as pd

我有以下数据框:

    Col1  Col2
0     a     0
1     b     1
2     a     1
2     b     1
3     a     0
3     c     1

我想将其重新格式化为:

    newCol_a  newCol_b   newCol_c
0      0         0          0
1      0         1          0
2      1         1          0
3      0         0          1

基本上是对两个旧列进行转置,并使Col1值成为新数据帧中列的列表,相对于索引值(不是唯一的),如果找不到字母,则该值应默认为0(例如: b和c代表索引0)。

我对如何做到这一点很固执

1 个答案:

答案 0 :(得分:1)

如果将Col1添加到索引,则可以.unstack()将其值转换为列:

In [7]: df.set_index("Col1", append=True)['Col2'].unstack(fill_value=0)
Out[7]:
Col1  a  b  c
0     0  0  0
1     0  1  0
2     1  1  0
3     0  0  1