Я пытаюсь объединить дополнительные кадры данных ( DF_B , DF_ C) в DF_A , чтобы они равнялись DF_D .
Единственный способ передать ie дополнительные кадры данных в DF_A - это через столбец B_2 , поэтому я пытаюсь объединить их в B_2 . Я попробовал этот код ниже, чтобы объединить первый дополнительный фрейм данных ( DF_B ).
DF_D = pd.merge(DF_A, DF_B, how='left', on='B_2')
Это почти сработало, но создает дополнительные столбцы.
Поэтому я подумал, что добавление left_on=
может работать, но это не сработало.
DF_D = pd.merge(DF_A, DF_B, how='left', left_on=['B_2','C_3', 'D_4'])
Я ищу способ записи дополнительных фреймов данных поверх основной кадр данных до заполнения DF_D. Кроме того, я бы хотел, чтобы DF_D сохранил все дополнительные строки и исходные столбцы / имена, даже если при слиянии нет совпадений.
Исходный основной кадр данных A:
A_1 B_2 C_3 D_4
0 03/17 3001
1 03/17 2002 L BLUE
2 03/17 3777
3 04/17 5555
4 04/17 3232
5 04/17 5000
6 04/17 5151
7 05/17 2212 S RED
Дополнительный кадр данных B :
B_2 C_3 D_4
0 3001 M GRAY
1 3131 S BLUE
2 3333 XS GREEN
3 3232 L PINK
4 3000 M RED
Используется как:
DF_1 = pd.merge(DF_A, DF_B, how='left', on='B_2')
Дополнительные данные C:
B_2 C_3 D_4
0 5151 S BLUE
1 5545 M PINK
2 5555 XL RED
3 5222 L GRAY
4 5112 S GREEN
Используется как:
DF_D = pd.merge(DF_1, DF_C, how='left', on='B_2')
Результат , окончательный DF_D:
A_1 B_2 C_3 D_4
0 03/17 3001 M GRAY
1 03/17 2002 L BLUE
2 03/17 3777
3 04/17 5555 XL RED
4 04/17 3232 L PINK
5 04/17 5000
6 04/17 5151 S BLUE
7 05/17 2212 S RED