我有三个数据:
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发布于 2021-02-17 21:33:54
看起来像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.loc[df['name'].isin(df1['name']), 'color'] = df1['color'].iloc[0]
df.loc[df['name'].isin(df2['name']), 'color'] = df2['color'].iloc[0]发布于 2021-02-17 21:34:25
pd.merge(df,df1.append(df2), how='left', on='name')https://stackoverflow.com/questions/66250189
复制相似问题