【问题标题】:Removing index name from df created with pivot_table()从使用 pivot_table() 创建的 df 中删除索引名称
【发布时间】:2019-07-21 06:06:40
【问题描述】:

好吧,我检查了问题Remove index name in pandas,但它不适用于我的情况。

所以我有一个 df,我使用 pandas melt 对其进行规范化,然后使用 pivot_table 对其进行非规范化。现在我有以下df,但我想删除这个索引名称variable

这是df:

df
variable   Site        Process  cap-lo    cap-up  depreciation  ...    inv-cost      max-grad  min-fraction  var-cost  wacc
0           Mid  Biomass plant     0.0    5000.0          25.0  ...    875000.0  1.500000e+15           0.0       1.4  0.07
1           Mid     Coal plant     0.0       0.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
2           Mid      Gas plant     0.0   80000.0          30.0  ...    450000.0  1.500000e+15           0.0       1.6  0.07
3           Mid    Hydro plant     0.0    1400.0          50.0  ...   1600000.0  1.500000e+15           0.0       0.0  0.07
4           Mid  Lignite plant     0.0   60000.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
5           Mid    Solar plant     0.0  160000.0          25.0  ...    600000.0  1.500000e+15           0.0       0.0  0.07
6           Mid     Wind plant     0.0   13000.0          25.0  ...   1500000.0  1.500000e+15           0.0       0.0  0.07
7         North  Biomass plant     0.0    6000.0          25.0  ...    875000.0  1.500000e+15           0.0       1.4  0.07
8         North     Coal plant     0.0  100000.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
9         North      Gas plant     0.0  100000.0          30.0  ...    450000.0  1.500000e+15           0.0       1.6  0.07
10        North    Hydro plant     0.0   20000.0          50.0  ...   1600000.0  1.500000e+15           0.0       0.0  0.07
11        North  Lignite plant     0.0       0.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
12        North    Solar plant     0.0    3000.0          25.0  ...    600000.0  1.500000e+15           0.0       0.0  0.07
13        North     Wind plant     0.0   60000.0          25.0  ...   1500000.0  1.500000e+15           0.0       0.0  0.07
14        South  Biomass plant     0.0       0.0          25.0  ...    875000.0  1.500000e+15           0.0       1.4  0.07
15        South     Coal plant     0.0  100000.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
16        South      Gas plant     0.0  100000.0          30.0  ...    450000.0  1.500000e+15           0.0       1.6  0.07
17        South    Hydro plant     0.0       0.0          50.0  ...   1600000.0  1.500000e+15           0.0       0.0  0.07
18        South  Lignite plant     0.0       0.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
19        South    Solar plant     0.0  600000.0          25.0  ...    600000.0  1.500000e+15           0.0       0.0  0.07
20        South     Wind plant     0.0  200000.0          25.0  ...   1500000.0  1.500000e+15           0.0       0.0  0.07

我想删除索引上方的 variable。我该怎么做?

可能不是索引名,而是列名……我只是想去掉变量。

PS:df.index.name = 'blah' 执行以下操作:

df
variable   Site        Process  cap-lo    cap-up  depreciation  ...    inv-cost      max-grad  min-fraction  var-cost  wacc
blah                                                            ...                                                        
0           Mid  Biomass plant     0.0    5000.0          25.0  ...    875000.0  1.500000e+15           0.0       1.4  0.07
1           Mid     Coal plant     0.0       0.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
2           Mid      Gas plant     0.0   80000.0          30.0  ...    450000.0  1.500000e+15           0.0       1.6  0.07
3           Mid    Hydro plant     0.0    1400.0          50.0  ...   1600000.0  1.500000e+15           0.0       0.0  0.07
4           Mid  Lignite plant     0.0   60000.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
5           Mid    Solar plant     0.0  160000.0          25.0  ...    600000.0  1.500000e+15           0.0       0.0  0.07
6           Mid     Wind plant     0.0   13000.0          25.0  ...   1500000.0  1.500000e+15           0.0       0.0  0.07
7         North  Biomass plant     0.0    6000.0          25.0  ...    875000.0  1.500000e+15           0.0       1.4  0.07
8         North     Coal plant     0.0  100000.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
9         North      Gas plant     0.0  100000.0          30.0  ...    450000.0  1.500000e+15           0.0       1.6  0.07
10        North    Hydro plant     0.0   20000.0          50.0  ...   1600000.0  1.500000e+15           0.0       0.0  0.07
11        North  Lignite plant     0.0       0.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
12        North    Solar plant     0.0    3000.0          25.0  ...    600000.0  1.500000e+15           0.0       0.0  0.07
13        North     Wind plant     0.0   60000.0          25.0  ...   1500000.0  1.500000e+15           0.0       0.0  0.07
14        South  Biomass plant     0.0       0.0          25.0  ...    875000.0  1.500000e+15           0.0       1.4  0.07
15        South     Coal plant     0.0  100000.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
16        South      Gas plant     0.0  100000.0          30.0  ...    450000.0  1.500000e+15           0.0       1.6  0.07
17        South    Hydro plant     0.0       0.0          50.0  ...   1600000.0  1.500000e+15           0.0       0.0  0.07
18        South  Lignite plant     0.0       0.0          40.0  ...    600000.0  1.500000e+15           0.0       0.6  0.07
19        South    Solar plant     0.0  600000.0          25.0  ...    600000.0  1.500000e+15           0.0       0.0  0.07
20        South     Wind plant     0.0  200000.0          25.0  ...   1500000.0  1.500000e+15           0.0       0.0  0.07

【问题讨论】:

  • 您可以将索引名称设置为您想要的 df.index.name = "blah"
  • 它只是添加索引“blah”,不删除变量。我猜变量不是索引...
  • 尝试 df.index.name = None
  • 如果这不起作用,您可能有一个多索引。你可以试试 df.reset_index
  • @Abhi 它有效 :) 写一个答案,我会接受它

标签: python pandas dataframe


【解决方案1】:

你可以使用rename_axis:

df = df.rename_axis(None, axis=1)  
# df.columns.name = None

# To remove index label
df = df.rename_axis(None, axis=0)
# df.index.name = None

【讨论】:

  • 你能否解释一下为什么在这里重命名索引不起作用但重命名轴以及为什么它是轴 = 1... :) 只是为了更好的答案,以便人们可以理解差异以及何时应该使用它
  • @oakca 这不是一个索引名称,而是一个列名和轴告诉这里要重命名的内容0: index and 1: columns
  • 我的意思是在你的回答中解释它:) 但无论如何
猜你喜欢
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
  • 2017-01-27
  • 2022-06-11
  • 1970-01-01
相关资源
最近更新 更多