Я хотів би порівняти один стовпчик df з іншими df. Стовпці - це імена та прізвища. Я хотів би перевірити, чи є людина в одному кадрі даних в іншому.
Я хотів би порівняти один стовпчик df з іншими df. Стовпці - це імена та прізвища. Я хотів би перевірити, чи є людина в одному кадрі даних в іншому.
Відповіді:
Якщо ви хочете перевірити рівні значення в певному стовпчику, скажімо, Ім'я, ви можете об'єднати обидва Dataframes до нового:
mergedStuff = pd.merge(df1, df2, on=['Name'], how='inner')
mergedStuff.head()
Я думаю, що це більш ефективно і швидше, ніж where
якщо у вас є великий набір даних
Порівняння значень у двох різних стовпцях
Використовуючи набір, отримуйте унікальні значення в кожному стовпчику. Перетин цих двох множин забезпечить унікальні значення в обох стовпцях.
Приклад:
df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]})
df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]})
set(df1['c2']).intersection(set(df2['c2']))
Вихід:
{2, 5}
Порівняння назв стовпців двох фреймів даних
Якщо ви намагаєтеся порівняти назви стовпців двох фреймів даних:
Якщо df1
і df2
є два фрейми даних:
set(df1.columns).intersection(set(df2.columns))
Це забезпечить унікальні назви стовпців, які містяться в обох фреймах даних.
Приклад:
df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]})
df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]})
set(df1.columns).intersection(set(df2.columns))
Вихід:
{'c2', 'c3'}