【发布时间】:2019-01-22 18:36:16
【问题描述】:
我想使用 pandas 数据框中的第一列作为行索引,所以我尝试使用 pandas.set_index(0, inplace=True) 来实现,但这有添加额外列索引的副作用。
(使用选项 InteractiveShell.ast_node_interactivity = "all" 运行的 jupyter 笔记本代码):
import pandas as pd
df = pd.DataFrame([[l+r*10 for l in range(1, 5)] for r in range(1, 5)])
df # before
df.set_index(0, inplace=True)
df # after
set_index()之前的数据框
set_index()之后的数据框
问题是为什么要创建第二个索引以及如何删除它? set_index() docs 没有提及任何关于正在创建的子索引。
【问题讨论】:
-
我认为你看到的是红色圆圈内的零是索引名称。 Pandas 显示从列标题偏移的索引名称,因此您在列标题下方有该空间。当使用列名称的 set index 参数时,该列名称会随着该列移动到数据框的索引中而更改为新的索引名称。
标签: python pandas dataframe indexing