Python 熊猫:重命名具有相同名称的列

Python 熊猫:重命名具有相同名称的列,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,我有一个dataframe,它有重复的列名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"}) 尝试: 您始终可以手动重命名所有列 df.columns = ['a', 'b', 'c']

我有一个dataframe,它有重复的列名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"})
尝试:


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

df.columns = ['a', 'b', 'c']
您可以简单地执行以下操作:

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

如果您的列已排序,并且需要字母列,请不要手动键入名称。这很容易出错

假设最多有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')

接受最适合您的答案,以便从队列中清除。
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')