【问题标题】:Pandas: renaming columns that have the same name熊猫:重命名具有相同名称的列
【发布时间】:2018-10-08 12:24:46
【问题描述】:

我有一个数据框,其中包含重复的列名 a、b 和 b。我想将第二个 b 重命名为 c。

df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6], "b1": [7, 8, 9]})
df.rename(index=str, columns={'b1' : 'b'})

尝试这个没有成功..

df.rename(index=str, columns={2 : "c"})

【问题讨论】:

  • 接受最适合您的答案,以便从队列中清除。

标签: python pandas dataframe indexing


【解决方案1】:

尝试:

>>> df.columns = ['a', 'b', 'c']

>>> df
   a  b  c
0  1  4  7
1  2  5  8
2  3  6  9

【讨论】:

    【解决方案2】:

    您始终可以手动重命名所有列。

    df.columns = ['a', 'b', 'c']
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

      df.columns = ['a','b','c']
      

      【讨论】:

        【解决方案4】:

        如果您的列是有序的并且您想要字母列,请不要手动输入名称。这很容易出错。

        您可以使用string.ascii_lowercase,假设您最多有 26 列:

        from string import ascii_lowercase
        
        df = pd.DataFrame(columns=['a', 'b', 'b1'])
        
        df.columns = list(ascii_lowercase[:len(df.columns)])
        
        print(df.columns)
        
        Index(['a', 'b', 'c'], dtype='object')
        

        【讨论】:

          猜你喜欢
          • 2017-02-20
          • 2017-03-26
          • 2021-08-15
          • 2011-01-27
          • 2021-12-12
          • 2021-10-24
          • 2022-07-06
          • 2019-03-19
          相关资源
          最近更新 更多