【问题标题】:How to change column names of last 7 columns of pandas DataFrame? [duplicate]如何更改 pandas DataFrame 的最后 7 列的列名? [复制]
【发布时间】:2021-12-30 16:21:46
【问题描述】:

我正在运行一个循环并向现有 DataFrame 添加 7 个新列。在循环的每次迭代之后,我只想更改添加的新列的列名(即最后 7 列)。我尝试过使用以下代码行:

df.columns[len(df.columns)-6:len(df.columns)] = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7']

这行代码不起作用,我收到错误 -

索引不支持可变操作

我在各种网站上查找过,但没有一种方法对我的情况有帮助。我该怎么做才能只更改最后 7 列的名称?

【问题讨论】:

    标签: python pandas dataframe indexing


    【解决方案1】:

    您可以使用df.columns.tolist() 将列复制到列表中,修改列表而不是df.columns 本身,然后将列表分配回df.columns

    columns = df.columns.tolist()
    columns[len(columns)-6:len(columns)] = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7']
    df.columns = columns
    

    【讨论】:

    • Python 支持负索引,所以columns[-6:] = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7'] 很好。也只是 df.columns.values[-6:] = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7'] 有效。
    猜你喜欢
    • 2014-01-19
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2020-04-09
    • 2020-10-30
    • 2017-05-10
    相关资源
    最近更新 更多