Pandas 如何使用for循环在多个panda数据帧上循环

Pandas 如何使用for循环在多个panda数据帧上循环,pandas,dataframe,for-loop,Pandas,Dataframe,For Loop,我试图协调所有数据帧中的列名,以便将它们连接起来并创建一个表。我正在努力在多个数据帧上创建一个循环。代码没有失败,但也不起作用。以下是两个数据帧的示例和包含数据帧的列表: df_test = pd.DataFrame({'HHLD_ID':[6,7,8,9,10], 'sales':[25,50,25,25,50], 'units':[1,2,1,1,2], }) df_test2

我试图协调所有数据帧中的列名,以便将它们连接起来并创建一个表。我正在努力在多个数据帧上创建一个循环。代码没有失败,但也不起作用。以下是两个数据帧的示例和包含数据帧的列表:

df_test = pd.DataFrame({'HHLD_ID':[6,7,8,9,10],
                   'sales':[25,50,25,25,50],
                   'units':[1,2,1,1,2],
                   })

df_test2 = pd.DataFrame({'HHLD_ID':[1,2,3,4,5],
                   'sale':[25,50,25,25,50],
                   'unit':[1,2,1,1,2],
                   })

list_df_export = [df_test,df_test2]
这是我试过的

for d in list_df_export:
    if 'sale' in d:
        d = d.rename(columns={"sale": "sales",'unit':'units'})
    
以下是我希望df_test2的外观。。。 您可以尝试:

df_test2.columns = df_test.columns
这将使df_test2中的列与df_test具有相同的名称

这就是您需要的吗?

您可以尝试:

df_test2.columns = df_test.columns
这将使df_test2中的列与df_test具有相同的名称

这就是您需要的吗?

您可以使用:

d = {'sale':'sales','unit':'units'}
pd.concat(i.rename(columns=d) for i in list_df_export)
您可以使用:

d = {'sale':'sales','unit':'units'}
pd.concat(i.rename(columns=d) for i in list_df_export)
也许“就地”选项可以帮助您:

 for d in list_df_export:
    if 'sale' in d:
        d = d.rename(columns={"sale": "sales", 'unit': 'units'}, inplace=True)
也许“就地”选项可以帮助您:

 for d in list_df_export:
    if 'sale' in d:
        d = d.rename(columns={"sale": "sales", 'unit': 'units'}, inplace=True)

如果我事先知道哪些数据帧将具有哪些列名,并且列的数量始终相同,那么这将起作用。我正在尝试循环所有数据帧并重命名标记错误的列。如果我事先知道哪些数据帧将具有哪些列名,并且列数始终相同,那么这将起作用。我正在尝试循环所有数据帧,并重命名标记不正确的列。如果我想在一个步骤中进行更正并将其连接起来,这非常好。如果我想更正所有拼写错误的数据帧,并且能够在以后使用它们(在本例中为df_test2),我该怎么做?@JonathanHay你的意思是我们事先不知道正确的拼写?我们如何确定正确的拼写。?让我澄清一下,我知道正确的拼写,例如“销售”和“单位”,我知道潜在的错误拼写,但我不知道哪些数据帧会事先有正确或错误的拼写。因为我想使用数据帧不仅仅是为了连接,所以我希望学习如何循环多个数据帧来更新每个数据帧。@JonathanHay在这种情况下,这就是方法。Rename将仅在键匹配时重命名,它不会影响它找不到匹配项的其他列。因此,只有拼写错误的列才会被重命名
[i.rename(columns=d)用于列表中的i\u df\u export]
如果我想在一个步骤中进行更正并将其连接起来,这非常好。如果我想更正所有拼写错误的数据帧,并且能够在以后使用它们(在本例中为df_test2),我该怎么做?@JonathanHay你的意思是我们事先不知道正确的拼写?我们如何确定正确的拼写。?让我澄清一下,我知道正确的拼写,例如“销售”和“单位”,我知道潜在的错误拼写,但我不知道哪些数据帧会事先有正确或错误的拼写。因为我想使用数据帧不仅仅是为了连接,所以我希望学习如何循环多个数据帧来更新每个数据帧。@JonathanHay在这种情况下,这就是方法。Rename将仅在键匹配时重命名,它不会影响它找不到匹配项的其他列。因此,只有拼写错误的列才会被重命名
[i.rename(columns=d)用于列表中的i\u df\u export]
inplace允许我分多个步骤执行此操作。谢谢inplace允许我分多个步骤完成这项工作。谢谢