我有两个数据框,根据df1的某一列中是否存在df2的值,需要将df2的值复制到df1的另一个特定列。
我尝试通过循环遍历数据框,但由于数据量太大,这需要很长时间。我相信一定有一种“pandaic”的方法可以处理这个问题。
我尝试通过循环遍历数据框,但由于数据量太大,这需要很长时间。我相信一定有一种“pandaic”的方法可以处理这个问题。
import pandas as pd
data1 = {'A': ['X1', 'Y1'],
'B': ['X2', 'Y2'],
'A1': ['NaN','NaN'],
'B1': ['NaN','NaN'],
}
data2 = {'AB': ['X1', 'Y2', 'X2','Y1'],
'D': ['D1', 'D4', 'D3', 'D2'],
}
df1=pd.DataFrame(data1, columns=['A','B','A1','B1'])
df2=pd.DataFrame(data2, columns=['AB','D'])
如果 df2 中存在 df1 列 A 的值,则需要将 D 的相应值复制到列 A1。 如果在 df2 中找到 df1 列 B 的值,则需要将 D 的值复制到 B1 等等...
可能出现 A/B 中的值为 NaN,或者在 df2 中没有相应的值。
data1_goal = {'A': ['X1', 'Y1'],
'B': ['X2', 'Y2'],
'A1': ['D1', 'D2'],
'B1': ['D3', 'D4'],
}
df_goal=pd.DataFrame(data1_goal, columns=['A','B','A1','B1'])
除了遍历 df1,还有其他优雅的方法吗?
谢谢!