【问题标题】:Difficult change of colum's name in DataFrame in Python Pandas?Python Pandas 的 DataFrame 中的列名称难以更改?
【发布时间】:2021-04-19 08:58:09
【问题描述】:

我有如下数据框:

df - pd.DataFrame({"col1" : [1 ,2 ,3],
                   "col1" : [2,3,4],
                   "col2" : [10, 11, 12]})

然后我制作:df.columns.tolist(),我有 df 的列列表:

["col1",
 "col1",
 "col2]

如何将第二个“col1”的名称更改为例如“col3”?因为我的意思是如果我会尝试:df.rename(columns={"col1" : "col3"}, inplace=True) 第一个“col1”将被更改。

【问题讨论】:

    标签: python pandas dataframe rename


    【解决方案1】:

    您可以按位置更改列名:

    df.columns.to_numpy()[1] = 'col3'
    print (df)
       col1  col3  col2
    0     1     2    10
    1     2     3    11
    2     3     4    12
    

    另一个想法是首先对列名进行重复数据删除:

    df.columns = pd.io.parsers.ParserBase({'names':df.columns})._maybe_dedup_names(df.columns)
    print (df)
       col1  col1.1  col2
    0     1       2    10
    1     2       3    11
    2     3       4    12
    

    所以你可以使用rename:

    df = df.rename(columns={"col1.1" : "col3"})
    print (df)
       col1  col3  col2
    0     1     2    10
    1     2     3    11
    2     3     4    12
    

    【讨论】:

    • No No No,col1 的值为 2,3,4 必须改为 col3
    • @jack55 - 抱歉,答案已更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 2014-01-19
    • 2021-04-20
    • 2019-05-02
    • 1970-01-01
    • 2019-11-23
    • 2019-07-21
    相关资源
    最近更新 更多