Объединить pandas фреймы данных [анти-объединение] - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть два набора данных:

  • a.csv
id,name,gender,age,smoke
1,John,M,16,Y
2,Mary,F,15,Y
  • b.csv
id,name,gender,age,smoke
1,John,M,16,Y
2,Mary,F,15,N

Я хочу: записывает, где возраст и курение совпадают, но пол не совпадает.

Моя попытка: выполняет работу , но не уверен, что это правильный путь.

df1 = pd.read_csv('data/a.csv')
df2 = pd.read_csv('data/b.csv')
df1.set_index(['age', 'smoke'], inplace=True)
df2.set_index(['age', 'smoke'], inplace=True)
result = df1.join(df2, how='inner', lsuffix='_a', rsuffix='_b')
print(result[result['gender_a'].astype(str) != result['gender_b'].astype(str)])
...