当前位置: 首页 > 知识库问答 >
问题:

通过关键字[重复]重命名pandas中的多列

仲孙思源
2023-03-14

我在这里查看了rename函数,但是,它似乎没有考虑到将多个列关联到一个要重命名的关键字的可能性。

这在熊猫体内是可行的吗?

到目前为止,我的(未工作的)尝试如下:

newNames = {
    'animals':['cats','dogs','fish'],
    'colors':['red','blue','green']
}

DF示例:

cats    dogs    fish    red
1   2   3   2
2   3   5   4
3   4   3   4

df.rename(index=str,columns=newNames,inplace=True)

预期结果:

animals     animals     animals     colors
1   2   3   2
2   3   5   4
3   4   3   4

共有1个答案

屈浩波
2023-03-14
categories = {"animals": ["cats", "dogs", "fish"],
              "colors" : ["red"]}

df.columns = pd.MultiIndex.from_tuples([(k, sub) for k,v in categories.items() for sub in v])
        animals                 colors

        cats    dogs    fish    red
0       1       2       3       2
1       2       3       5       4
2       3       4       3       4
 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 使用pandas GroupBy.agg()对同一列进行多次聚合 (3个答案) 去年关闭。 示例数据集: 我想通过和对这个数据集的观察进行分组,并对每个组求和。所以我用了这样的东西… 在使用时,我能够获得“ SQL-like”输出。我的问题是我无法在此处 重命名聚合变量。因此,在SQL中,如果想做上述事情,我会做这样的事情: 正如我们看到的,它很容易让我

  • 问题内容: 我有一个数据框,我想根据另一个计划用作字典的数据框重命名列。例如,我拥有的第一个数据框是: 作为第二个数据框,我想用作字典: 我想得到的结果如下: 最初,我想将第一个数据框重塑为长格式,然后与字典数据框合并,然后重塑为宽格式。但是我认为这效率很低,因此我想使用一种更有效的方法(如果存在)。非常感谢您的帮助。 问题答案: 我觉得你可以先创建从,然后创建从列由您再使用:

  • 我有一个dataframe,我想根据另一个我计划用作字典的dataframe重命名这些列。例如,我的第一个数据帧是: 作为我想用作字典的第二个数据帧: 我希望得到的结果如下: 最初,我想将第一个数据帧重塑为长格式,然后与字典数据帧合并,然后重塑为宽格式。然而,我认为这是相当低效的,所以我想使用一种更有效的方法(如果存在的话)。非常感谢你的帮助。

  • 问题内容: 我有一个使用pandas和列标签的,我需要对其进行编辑以替换原始列标签。 我想在原始列名称为的 中更改列名称: 至 我已经将编辑后的列名存储在列表中,但是我不知道如何替换列名。 问题答案: 只需将其分配给属性:

  • 问题内容: 有没有一种方法可以重命名字典键,而无需将其值重新分配给新名称并删除旧名称键;而且没有迭代字典键/值? 对于OrderedDict,在保持键的位置的同时执行相同的操作。 问题答案: 对于常规命令,可以使用: 对于OrderedDict,我认为你必须使用一种理解来构建一个全新的。 正如这个问题似乎提出的那样,修改密钥本身是不切实际的,因为dict密钥通常是不可变的对象,例如数字,字符串或元

  • 我有一个dataframe(由于我无法控制的原因),其中变量的数量从1到20不等,所有变量都命名为1,2,3,4,5....ETC 一天有四列: 在每个列名前缀“variable_”(与列数无关)。所以看起来应该是这样的: 我可以用循环来完成,但我希望有一个更简单的方法。