【问题标题】:How to melt a dataframe into a long form?如何将数据框融合为长格式?
【发布时间】:2021-12-21 00:07:12
【问题描述】:

我有以下数据框

recycling 1 metric tonne (1000 kilogram) per waste type  Unnamed: 1 Unnamed: 2     Unnamed: 3       Unnamed: 4      Unnamed: 5
0    1 barrel oil is approximately 159 litres of oil       NaN          NaN            NaN              NaN             NaN
1                NaN                                       NaN          NaN            NaN              NaN             NaN
2                material                                  Plastic    Glass     Ferrous Metal     Non-Ferrous Metal     Paper
3               energy_saved                               5774 Kwh   42 Kwh         642 Kwh          14000 Kwh        4000 kWh
4               crude_oil saved                            16 barrels   NaN        1.8 barrels        40 barrels      1.7 barrels

参考图片: 我想要做的是将第 2、3、4 行放入新数据框中的 cols 中。它应该看起来像这样..

  material   energy_saved   crude_oil saved
  plastic     5774Kwh         16 barrels
  Glass        42 Kwh          NaN
  ...           ...            ...

我尝试使用.melt,但它不起作用。 如果您注意到,列名及其值位于一行中。我只是希望它们以 col 和 value 的形式出现在一个新的数据框中。

【问题讨论】:

  • 请您提供一个数据框示例作为文本?我无法从图像中复制/粘贴。
  • 好的,我会这样做的
  • @richardec 我已经完成了你的要求。

标签: python-3.x pandas dataframe


【解决方案1】:

IIUC,只是:

out = df.loc[[2,3,4],:].T.reset_index(drop=True)

【讨论】:

  • 它正在工作,但你能告诉我如何按照我的要求制作 col 名称吗?我希望我的 col 名称为“material”、“energy_saved”、“crude_oil_saved”,但它们似乎被视为值。
  • 其实我自己重命名了它们。您可以只输入上一个答案,因为它对我有用。你能做到吗?我会接受那个答案(你之前写的那个)
  • 是的,就是那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
  • 2011-03-18
  • 2021-12-01
  • 2023-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多