根据两个数据框之间的公共值获取列的值

get a value of a column based on common values between two data frame

我正在尝试仅针对两个不同数据框之间的公共值获取列 A 的值。

数据框 1:

数据框 2:

最终数据帧:

我尝试了下面的代码:如果 X_2 中没有空值或字符串,以及只有一个值要分配,它就可以工作。但是当我们有来自 x_2.

的两个值时,它就不起作用了
df2['X_2'] = np.nan
x_list = df1['x_1'].tolist()
for index in range(len(df2)):
    
    item = df2['A_1'][index]
    if item in x_list:
        value = df1.loc[df1['x_1)']== item,'X_2'].item()
        df2['X_2'][index] = value
    else:
        pass

试试这个:

# Optional
df1 = df1.replace(['No available', 'null'], np.nan)

df2 = df2.set_index('A_1').assign(X_2=df1.groupby('X_1')['X_2'].agg(list).explode().dropna().groupby(level=0).agg(list).rename().rename_axis(None)).reset_index()

输出:

>>> df2
        A_1                   X_2
0  99192401  [80306228, 12345678]
1  99192627            [30306711]
2  99192651            [10306222]
3  99192628                   NaN