我有两个数据帧,如下比较熊猫dataframes和添加柱
df1 df2
A A C
A1 A1 C1
A2 A2 C2
A3 A3 C3
A1 A4 C4
A2
A3
A4
列的“A”在DF2中定义列“C”的值。 我想添加一个新列DF1与B列从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。
感谢
谢谢大家的建议。我使用这个解决方案,因为它会将df2中的其他列合并到df1。谢谢@EdChum –
'merge'和'map'之间也有语义上的区别,如果df1中的查找不存在于df2中,那么'merge'将插入'NaN',而'map'则会抛出'KeyError' – EdChum