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#
?您可以很容易地传递listpd.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变得更有用