我想将pandas数据框中的第一列用作行索引,所以我尝试使用pandas.set_index(0, inplace=True)来做到这一点,但这会增加额外的列索引。
(jupyter notebook代码运行选项InteractiveShell.ast_node_interactivity = "all"
):
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没有提及有关正在创建的子索引的任何信息。
答案 0 :(得分:1)
就像@ scott-boston一样,将显示索引名称,该索引名称在您的示例中为“ 0”。如果您想删除它,只需使用:
del df.index.name
因此,您的完整代码为:
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)
del df.index.name
df # after