Я хотел объединить два набора данных по их значению ключа и получил странные результаты. Я сделал простую версию для воспроизведения этой проблемы.
df = pd.DataFrame({'key':[1, 2, 3]})
other = pd.DataFrame({'key':[1, 2, 3]})
df.join(
other,
on='key',
lsuffix='_caller'
)
Я получил такой вывод:
key_caller key
0 1 2.0
1 2 3.0
2 3 NaN
Я подумал, что это странно, поэтому я решил попробовать эту:
df = pd.DataFrame({'key':[i for i in range(3)]})
other = pd.DataFrame({'key':[i for i in range(3)]})
df.join(
other,
on='key',
lsuffix='_caller'
)
И получил ожидаемый результат:
key_caller key
0 0 0
1 1 1
2 2 2
Если нет нуля, то соединение испорчено, но если есть ноль, все работает отлично.
Так Может кто-нибудь объяснить, что происходит?