删除pandas中的索引名称

mar*_*ain 63 python indexing rowname pandas

我有一个像这样的数据帧:

In [10]: df
Out[10]: 
         Column 1
foo              
Apples          1
Oranges         2
Puppies         3
Ducks           4
Run Code Online (Sandbox Code Playgroud)

如何index name foo从该数据框中删除?所需的输出是这样的:

In [10]: df
Out[10]: 
         Column 1             
Apples          1
Oranges         2
Puppies         3
Ducks           4
Run Code Online (Sandbox Code Playgroud)

S A*_*and 62

使用 del df.index.name

In [16]: df
Out[16]:
         Column 1
foo
Apples          1
Oranges         2
Puppies         3
Ducks           4

In [17]: del df.index.name

In [18]: df
Out[18]:
         Column 1
Apples          1
Oranges         2
Puppies         3
Ducks           4
Run Code Online (Sandbox Code Playgroud)

  • 对于“pandas”版本 1.0.3,这似乎不再起作用了。它失败并显示“AttributeError:无法删除属性”。 (33认同)
  • @mrn,@EdChum 的解决方案非常好:`df.index.name = None` (21认同)
  • @billjoie 保佑你的心。已经研究这个有一段时间了。del df.index.name 不适用于更高版本的 pandas。 (2认同)

Mat*_*row 37

我花了太长时间才找到对我真正有用的答案。见下文。

df = df.rename_axis(None, axis=1)
Run Code Online (Sandbox Code Playgroud)

我确定这些其他答案中的一些对其他人有用,但它们绝对不适合我:(

  • 确认这是唯一对我有用的答案! (12认同)
  • 这是唯一对我有用的答案;使用 rename_axis() 并添加 axis=1 (3认同)
  • 我也属于其他解决方案不起作用的组。因为我的数据框是枢轴的结果。该标签不是索引的名称。它是当前列名称所来自的前列标题。 (3认同)
  • 这是正确答案! (2认同)

EdC*_*ica 33

或者你可以分配Noneindex.name的属性:

In [125]:

df.index.name = None
df
Out[125]:
         Column 1

Apples          1
Oranges         2
Puppies         3
Ducks           4
Run Code Online (Sandbox Code Playgroud)


jez*_*ael 25

从版本中0.18.0您可以使用rename_axis:

print df
         Column 1
foo              
Apples          1
Oranges         2
Puppies         3
Ducks           4

print df.index.name
foo


print df.rename_axis(None)
         Column 1
Apples          1
Oranges         2
Puppies         3
Ducks           4

print df.rename_axis(None).index.name
None

# To modify the DataFrame itself:
df.rename_axis(None, inplace=True)
print df.index.name
None
Run Code Online (Sandbox Code Playgroud)