Я запускаю Python 3.6 в Windows 10.
Мой код следующий:
data1
Loan_ID Gender
1 LP001003 Male
2 LP001005 Male
3 LP001006 Male
4 LP001008 Male
5 LP001011 Male
data2
Loan_ID2 LoanAmount
1 LP001003 128.0
2 LP001005 66.0
3 LP001006 120.0
4 LP001008 141.0
5 LP001011 267.0
data_merged = data1.merge(right= data2, how='inner',left_on='Loan_ID', right_on = 'Loan_ID2',right_index=True, sort=False)
data_merged.shape
(0, 4)
Попробуйте переименовать свой столбец в data2
, это немного упростит ваш код слияния.
data1.merge(data2.rename(columns = {'Loan_ID2' : 'Loan_ID'}), on='Loan_ID')
Loan_ID Gender LoanAmount
0 LP001003 Male 128.0
1 LP001005 Male 66.0
2 LP001006 Male 120.0
3 LP001008 Male 141.0
4 LP001011 Male 267.0
Вам не нужен right_index
в merge
df1.merge(df2,left_on='Loan_ID',right_on='Loan_ID2')
Out[54]:
Loan_ID Gender Loan_ID2 LoanAmount
0 LP001003 Male LP001003 128.0
1 LP001005 Male LP001005 66.0
2 LP001006 Male LP001006 120.0
3 LP001008 Male LP001008 141.0
4 LP001011 Male LP001011 267.0
@ user8270077, когда вы выполняете слияние и набираете right_index, вы Используйте индекс из левого DataFrame в качестве ключа (ключей) соединения.
Просто удалите часть right_index
:
data_merged = pd.merge(data1, data2, how='inner',left_on='Loan_ID', right_on = 'Loan_ID2', sort=False)
Не могли бы вы объяснить, почему right_index создал проблему?