Python 使用列表元素重命名多个dfs的列

Python 使用列表元素重命名多个dfs的列,python,pandas,rename,Python,Pandas,Rename,我有5个数据帧,分别是control1,control2,control3,control4,control5。我正在重新命名他们的专栏。但是我想重命名名为10(整数名)的列,每个列的文件中都有元素。 大概是这样的: control1.rename(columns={10:'02042020.txt'}, inplace=True) control2.rename(columns={10:'05032020.txt'}, inplace=True) #...... etc

我有5个数据帧,分别是control1,control2,control3,control4,control5。我正在重新命名他们的专栏。但是我想重命名名为10(整数名)的列,每个列的文件中都有元素。 大概是这样的:

    control1.rename(columns={10:'02042020.txt'}, inplace=True)
    control2.rename(columns={10:'05032020.txt'}, inplace=True)
    #...... etc etc 
这是我的代码:

        lista_controles=[control1,control2,control3,control4,control5]
        files=['02042020.txt','05032020.txt','12032020.txt','19032020.txt','26032020.txt']
        for df in lista_controles:
            df.rename(columns={2:'NOMBRE_ESTACION'}, inplace=True)
            for i in files 
               df.rename(columns={10:f'{i}'}, inplace=True)

但仅使用列表的第一个元素(0204200.txt)重命名。我怎样才能解决这个问题?谢谢.

这是因为当
df.rename(columns={10:f'{i}},inplace=True)
第一次运行时,它将名称“10”更改为“0204200.txt”。在第二次迭代中,不再有任何名为“10”的列,因此它什么也不做,因为它只是被更改为“0204200.txt”

你可以试试:

用于枚举中的i、df(列表控制):
rename(columns={2:'NOMBRE_ESTACION'},inplace=True)
rename(columns={10:files[i]},inplace=True)

要实现这一点,请确保
lista_控件
文件
中的元素数量相等。如果没有,还有其他方法。

不客气。实际上,这里唯一不同的是
枚举
。你可以用谷歌搜索它,了解它是什么。剩下的只是逻辑,通过练习可以提高。这是一个练习python的好地方。