Pandas:拆开 DataFrame 的一列

use*_*920 6 python pandas

我想在 Pandas DataFrame 中取消堆叠一列。DataFrame 由“日期”索引,我想拆开“国家/地区”列,以便每个国家/地区都是自己的列。当前的熊猫 DF 如下所示:

             Country   Product      Flow Unit  Quantity  
Date                                                         
2002-01-31   FINLAND  KEROSENE  TOTEXPSB  KBD    3.8129     
2002-01-31    TURKEY  KEROSENE  TOTEXPSB  KBD    0.2542     
2002-01-31  AUSTRALI  KEROSENE  TOTEXPSB  KBD   12.2787     
2002-01-31    CANADA  KEROSENE  TOTEXPSB  KBD    5.1161     
2002-01-31        UK  KEROSENE  TOTEXPSB  KBD   12.2013     
Run Code Online (Sandbox Code Playgroud)

当我使用 df.pivot 时,我收到以下错误“ReshapeError:索引包含重复条目,无法重塑”这是真的,因为我正在查看每个国家/地区同时报告的日期。我想要的是拆开“国家/地区列”,以便每个月只显示一个日期。

像这样 Date 的 DataFrame 标头仍然是索引:

Date        FINLAND TURKEY  AUSTRALI  CANADA Flow      Unit

2002-01-31  3.8129  0.2542  12.2787   5.1161 TOTEXPSB   KBD
Run Code Online (Sandbox Code Playgroud)

我已经在这方面工作了一段时间,但我一无所获,因此任何方向或见解都会很棒。

另外,请注意,您只能看到 DataFrame 的头部,因此多年的数据采用这种格式。

谢谢,

道格拉斯

jmz*_*jmz 4

如果你可以删除Product, Unit, 那么Flow它应该像

df.reset_index().pivot(columns='Country', index='Date', values='Quantity')
Run Code Online (Sandbox Code Playgroud)

给予

Country  AUSTRALI    CANADA  FINLAND TURKEY  UK
Date                    
2002-01-31   12.2787     5.1161  3.8129  0.2542  12.2013
Run Code Online (Sandbox Code Playgroud)