import pandas as pd
df = {
('A', 'X', "k"): [1, 2, 3],
('A', 'Y', "k"): [4, 5, 6],
('B', 'X', "k"): [7, 8, 9],
}
df = pd.DataFrame(df)
df.columns = df.columns.set_names(("level0", "level1", "level2"))
df["D"] = [1,2,3]
df
这是输出:
level0 A A B D
level1 X Y X
level2 k k k
0 1 4 7 1
1 2 5 8 2
2 3 6 9 3
如何选择最后一列“D”并将其在多重索引的“level2”上专门重命名为“E”?理想情况下,不需要为所有列设置名称。找不到解决方案。
使用 .rename 方法和字典来重命名多级列 DataFrame 中的特定列。在您的情况下,您希望将“level2”处标记为“D”的列重命名为“E”。你可以这样实现: 将 pandas 导入为 pd
df = {
('A', 'X', "k"): [1, 2, 3],
('A', 'Y', "k"): [4, 5, 6],
('B', 'X', "k"): [7, 8, 9],
}
df = pd.DataFrame(df)
df.columns = df.columns.set_names(("level0", "level1", "level2"))
df["D"] = [1, 2, 3]
# Select and rename the specific column
df = df.rename(columns={('D', '', ''): ('E', '', 'k')})
print(df)