选择并重命名数据框中的特定多级列

问题描述 投票:0回答:1
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”?理想情况下,不需要为所有列设置名称。找不到解决方案。

pandas rename multi-index
1个回答
0
投票

使用 .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)
© www.soinside.com 2019 - 2024. All rights reserved.