Pandas 如何使用共享字典在一个循环中重命名多个数据帧?

Pandas 如何使用共享字典在一个循环中重命名多个数据帧?,pandas,loops,multiple-columns,rename,Pandas,Loops,Multiple Columns,Rename,我有多个数据帧,它们都共享相同数量的列和相同的名称。出于某种原因,我想用字典来重命名所有这些专栏 我知道如何使用pandas的重命名功能一次对一个数据帧执行此操作,例如: df = df.rename(columns={"1": "a", etc.}) 我想为数据帧列表(df_list)中的每个数据帧添加一个循环,但由于某些原因,它并不像我期望的那样工作 df_list = (df1, df2) for i in df_list: i = i.rename(columns={

我有多个数据帧,它们都共享相同数量的列和相同的名称。出于某种原因,我想用字典来重命名所有这些专栏

我知道如何使用pandas的重命名功能一次对一个数据帧执行此操作,例如:

df = df.rename(columns={"1": "a", etc.})
我想为数据帧列表(df_list)中的每个数据帧添加一个循环,但由于某些原因,它并不像我期望的那样工作

df_list = (df1, df2)

for i in df_list:

   i = i.rename(columns={
    '1':'a',
    '2':'b',
    '3':'c', etc.})
上面的代码没有提供任何错误,也没有更改任何内容。同样,df1和df2共享完全相同的结构(columns=“1”、“2”、“3”等)


我很乐意阅读任何关于如何自动重命名这些列的建议。。。谢谢

您试图修改一个元组,它是不可变的。改为使用列表:

df_list = [df1, df2]

for i in df_list:

   i = i.rename(columns={
  '1':'a',
  '2':'b',
  '3':'c', ...})

在重命名功能中添加
inplace=True
使用列表
df_list=[df1,df2]
,感谢你们两位。虽然从元组移动到列表肯定是一件好事,但这并不能单独解决我的问题。使用inplace=True确实做到了。非常感谢,连同inplace=True,这解决了我的问题。你有什么版本的熊猫?inplace=True不应该是必需的,因为您在分配i=i.renameWell时正在创建一个副本,之后注意到确实不需要inplace=True。只是把它应用到我的实际工作中,而不是应用到例子中。我的熊猫版本是“0.23.4”。谢谢