我有两个数据帧,如下所示
df1 df2
A A C
A1 A1 C1
A2 A2 C2
A3 A3 C3
A1 A4 C4
A2
A3
A4
列'A'的值在列'C'中的df2中定义 . 我想在列d的df1中添加一个新列,其值来自df2列'C'
最终的df1应该是这样的
df1
A B
A1 C1
A2 C2
A3 C3
A1 C1
A2 C2
A3 C3
A4 C4
我可以遍历df2并将值添加到df1,但由于数据量很大,所以耗费时间 .
for index, row in df2.iterrows():
df1.loc[df1.A.isin([row['A']]), 'B']= row['C']
有人可以帮助我理解如何在不绕过df2的情况下解决这个问题 .
谢谢
3 回答
IIUC你可以合并并重命名col
您可以使用map by
Series
:dict
与map
相同:Timings :
len(df1)=7
:len(df1)=70k
:基于searchsorted方法,这里有三种不同索引方案的方法 -