【问题标题】:How do I add a name to several columns?如何将名称添加到多个列?
【发布时间】:2019-06-13 04:08:09
【问题描述】:

我想为以下 DataFrame 的“Season_1”和“Season_2”列指定一个名称(如 John):

             Season_1  Season_2
Wins         151       120
Losses       124       110

所以它应该看起来像这样:

             John
             Season_1  Season_2
Wins         151       120
Losses       124       110

这可能可以通过 MultiIndex 解决。但是,当已经有一个现有的 DataFrame 时,我似乎无法找出它是如何工作的。

我已经用这段代码创建了这个 DataFrame:

wins = {'Wins': (151, 120)}

losses = {'Losses': (124, 110)}

dict_all = {**wins, **losses}
df = pd.DataFrame.from_dict(dict_all, orient='index', columns=['Season_1', 'Season_2'])

稍后我想组合几个 DataFrame,这样我就可以得到这样的东西。我会为此使用 pandas.merge() :

             John                Adam
             Season_1  Season_2  Season_1  Season_2
Wins         151       120       111       110
Losses       124       110       102       110

【问题讨论】:

    标签: python pandas multi-index


    【解决方案1】:

    你需要添加一个列级别

    df.columns = pd.MultiIndex.from_product([['John'], df.columns])
    
            John
            Season_1    Season_2
    Wins    151         120
    Losses  124         110
    

    后续问题 1:Season_1 的“John”和 Season_2 的“Adam”

    df.columns = pd.MultiIndex.from_tuples([('John', 'Season_1'), ('Adam', 'Season_2')]) 
    

    后续问题2:5列(“A”、“B”、“C”、“D”、“E”)并将级别“一”分配给“A”、“B”、“C”以及“二”级到“D”、“E”级。

    df.columns = pd.MultiIndex.from_tuples([('One', 'A'),('One', 'B'),('One', 'C'), ('Two', 'D'),('Two', 'E')]) 
    

    【讨论】:

    • 谢谢!如果您想要 Seasons_1 的“John”和 Season_2 的“Adam”怎么办?
    • 你可以试试 df.columns = pd.MultiIndex.from_tuples([('John', 'Season_1'), ('Adam', 'Season_2')])
    • 这行得通,谢谢。还有一个问题:如果我有 5 列(“A”、“B”、“C”、“D”、“E”)并且我想将级别“一”分配给“A”、“B”,该怎么办? “C”和“二级”到“D”、“E”级。 from_tuples 不起作用。在这种情况下我会使用什么功能?
    • 你会使用 df.columns = pd.MultiIndex.from_tuples([('One', 'A'),('One', 'B'),('One', 'C' ), ('Two', 'D'),('Two', 'E')]) 在这种情况下
    • 这是另一个后续问题(基于2.问题):如果我有一个列表[“A”,“B”,“C”]和列表[“D”, “E”]。如何将第一个列表分配给“一”级,将第二个列表分配给“二”级? from_tuples 完美运行,但写 5 次关卡名称很烦人..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多