У меня есть два кадра данных, предположим, A и B, которые были созданы после чтения листов файла Excel и выполнения некоторых основных функций. Мне нужно merge right
два кадра данных в столбце с именем ID, который сначала был преобразован в astype(str)
для обоих кадров данных.
Столбец идентификатора левого кадра данных (A):
0 5815518813016
1 5835503994014
2 5835504934023
3 5845535359006
4 5865520960012
5 5865532845006
6 5875531550008
7 5885498289039
8 5885498289039_A2
9 5885498289039_A3
10 5885498289039_X2
11 5885498289039_X3
12 5885509768698
13 5885522349999
14 5895507791025
Name: ID, dtype: object
Столбец идентификатора правого кадра данных (B):
0 5835503994014
1 5845535359006
2 5835504934023
3 5815518813016
4 5885498289039_A1
5 5885498289039_A2
6 5885498289039_A3
7 5885498289039_X1
8 5885498289039_X2
9 5885498289039_X3
10 5885498289039
11 5865532845006
12 5875531550008
13 5865520960012
14 5885522349998
15 5895507791025
16 5885509768698
Name: ID, dtype: object
Однако, когда я объединяю эти два, остальные столбцы левого (A) кадра данных становятся «пустыми» (np.nan) за исключением строк, в которых идентификатор содержит не только цифры, но и буквы. Это pd.merge()
Я делаю:
A_B=A.merge(B[['ID','col_B']], left_on='ID', right_on='ID', how='right')
У вас есть идеи, что может быть так неправильно? Ваш вклад ценный.