Python 在不创建重复列的情况下将多个数据帧合并为一个数据帧

Python 在不创建重复列的情况下将多个数据帧合并为一个数据帧,python,pandas,Python,Pandas,我有三个数据帧: array = {'name': ['Trevor', 'John', 'Trevor', 'John', 'Trevor', 'Trevor', 'John'], 'day': ['2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00' , '2020-10-11 12:34:00', '20

我有三个数据帧:

array = {'name': ['Trevor', 'John', 'Trevor', 'John', 'Trevor', 'Trevor', 'John'], 'day': ['2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00'
        , '2020-10-11 12:34:00', '2020-10-11 09:12:00'], 'number': [5,0,3,5,1,8,6]}
df = pd.DataFrame(array)
array1 = {'name': ['Trevor'], 'color': ['red']}
df1 = pd.DataFrame(array1)
array2 = {'name': ['John'], 'color': ['blue']}
df2 = pd.DataFrame(array2)
df
我想将df1和df2合并到现实世界中的df中,我有数百个df1、df2、df3…,因此输出为:

    name    day              number color
0   Trevor  2020-10-11 08:00:00 5   red
1   John    2020-10-11 08:00:00 0   blue
2   Trevor  2020-10-11 08:00:00 3   red
3   John    2020-10-11 08:00:00 5   blue
4   Trevor  2020-10-11 08:00:00 1   red
5   Trevor  2020-10-11 12:34:00 8   red
6   John    2020-10-11 09:12:00 6   blue

看起来像是
merge
concat

df.merge(pd.concat([df1,df2]), on='name', how='left')
输出:

     name                  day  number color
0  Trevor  2020-10-11 08:00:00       5   red
1    John  2020-10-11 08:00:00       0  blue
2  Trevor  2020-10-11 08:00:00       3   red
3    John  2020-10-11 08:00:00       5  blue
4  Trevor  2020-10-11 08:00:00       1   red
5  Trevor  2020-10-11 12:34:00       8   red
6    John  2020-10-11 09:12:00       6  blue

更新:每次收到新的
df#
时,请尝试
loc
更新:


看起来像是
merge
concat

df.merge(pd.concat([df1,df2]), on='name', how='left')
输出:

     name                  day  number color
0  Trevor  2020-10-11 08:00:00       5   red
1    John  2020-10-11 08:00:00       0  blue
2  Trevor  2020-10-11 08:00:00       3   red
3    John  2020-10-11 08:00:00       5  blue
4  Trevor  2020-10-11 08:00:00       1   red
5  Trevor  2020-10-11 12:34:00       8   red
6    John  2020-10-11 09:12:00       6  blue

更新:每次收到新的
df#
时,请尝试
loc
更新:



你看过这篇文章了吗?对这不是我要找的,你看过这篇文章了吗?对这不是我要找的汉克斯,但我有数百个df#-不仅仅是两个。你如何存储这数百个
df#
?您可以很容易地传递list
pd.concat(list\u of\u dfs\u)
?问题是我一次只获取一个,需要一次“合并”一个以df@gtomer你应该在你的问题中提到这一点。如果有帮助,请查看更新的答案。
current_df=current_df.merge(pd.concat([current_df,new_df]),…
谢谢,但我有数百个df-不仅仅是两个,如何存储数百个
df
?您可以轻松地传递列表
pd.concat(list_of_dfs)
?问题是我一次只得到一个,需要“合并”一个接一个地告诉他们df@gtomer您应该在问题中提到这一点。如果有帮助,请参阅更新的答案。
current\u df=current\u df.merge(pd.concat([current\u df,new\u df]),…
谢谢,但我有数百个df#-不只是两个将它们解析为一个列表。然后Concat变得更有用谢谢,但我有数百个df#-不只是两个将它们解析为一个列表。然后Concat变得更有用