python - 用列表的元素重命名许多 dfs 的列
问题描述
我有 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)
但仅使用列表的第一个元素(02042020.txt)重命名。我该如何解决这个问题?谢谢..
解决方案
这是因为df.rename(columns={10:f'{i}'}, inplace=True)
第一次运行时,它会将名称“10”更改为“02042020.txt”。在第二次迭代中,不再有任何名为“10”的列,因此它什么也不做,因为它只是已更改为“02042020.txt”。
你可以试试:
for i, df in enumerate(lista_controles):
df.rename(columns={2:'NOMBRE_ESTACION'}, inplace=True)
df.rename(columns={10:files[i]}, inplace=True)
要完成这项工作,请确保您有相同数量的lista_controles
元素files
。如果没有,还有其他方法可以做到这一点。
推荐阅读
- flutter - StackedIndex 导致失败的断言错误
- javascript - 为什么 removeChild 比 innerHTML = ' ' 快?
- wpf - Dependecy 属性用作源但不用作目标
- java - 为了学习 Java,我需要 Java IDE 吗?
- r - R中按行/秒计算的偏移平均值
- r - 如何正确使用 stack() 函数来提取 R 中 ANCOVA 的边际均值?
- java - 错误 Infating 类 com.google.android.material.card.MaterialCardView
- c++ - 在 C++ 中,如何使用在其他地方的一个文件中定义的常量变量?
- c++ - 无法将 GLuint 转换为 GLuint()
- python - 如何整合两个python文件夹?