DataFrame将列值转换为新列

时间:2018-11-23 11:01:05

标签: python dataframe

我有以下系列:

project   id        type
First    130403725  PRODUCT      68
                    EMPTY         2
Six      130405706  PRODUCT      24
         132517244  PRODUCT      33
         132607436  PRODUCT      87

如何将type的值转换为新列:

                   PRODUCT  EMPTY
project   id        
First    130403725     68     2             
Six      130405706     24     0
         132517244     33     0
         132607436     87     0

2 个答案:

答案 0 :(得分:3)

这是经典的splitlines()

df_pivoted = df.pivot(index=["project", "id"], columns=["type"], values=[3])

我已经使用3作为value列的索引,但是如果您将其命名的话会更清楚。

答案 1 :(得分:1)

使用unstack,因为MultiIndex Series

s1 = s.unstack(fill_value=0)
print (s1)
type               EMPTY  PRODUCT
project id                       
First   130403725      2       68
Six     130405706      0       24
        132517244      0       33
        132607436      0       87

对于DataFrame:

df = s.unstack(fill_value=0).reset_index().rename_axis(None, axis=1)
print (df)
  project         id  EMPTY  PRODUCT
0   First  130403725      2       68
1     Six  130405706      0       24
2     Six  132517244      0       33
3     Six  132607436      0       87