熊猫枢轴:保持原样

时间:2019-08-26 10:29:26

标签: python-3.x pandas dataframe

我有以下数据框:

    name    year0   id      year    month   val1    val2    col
0   Agency  2009    COM3    2019    April   0.02    0.04    2019April
1   Agency  2009    COM3    2019    May     0.00    0.00    2019May
2   Agency  2010    FRE5    2019    April   0.00    0.00    2019April
3   Agency  2010    FRE5    2019    May     0.05    0.07    2019May

我希望将其从长转换为宽:

    name    year0   id      val1                 val2
                            2019April  2019May   2019April  2019May
0   Agency  2009    COM3    0.02       0.00      0.04       0.00
2   Agency  2010    FRE5    0.00       0.05      0.00       0.07

现在编写,我有以下代码:

df = df.pivot(index=None, columns='col', values=['val1', 'val2'])

但这会删除列name, year0, id, year, month。我确实想删除yearmonth,因为col只是两者的串联,但是我想保留name, year0, id不变。我该如何实现?

请注意,所有列都重复,因此不能用作索引。但是,可以使用name, year0, id的组合。我尝试了相同的方法:

df = df.pivot(index=['name', 'year0', 'id'], columns='col', values=['val1', 'val2'])

但这给了我以下错误:

ValueError: Shape of passed values is (20011, 2), indices imply (3, 2)

我是熊猫新手,所以我可能缺少一些简单的东西。任何帮助表示赞赏!谢谢!

0 个答案:

没有答案