Я пытаюсь получить значение столбца 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
Интересная задача, я думаю, что смогу решить эту. Не могли бы вы предоставить свои два фрейма данных в виде текста, а не изображений?