Я хотел бы сравнить один столбец df с другими df. Столбцы - это имена и фамилии. Я хотел бы проверить, находится ли человек в одном фрейме данных в другом.
Я хотел бы сравнить один столбец df с другими df. Столбцы - это имена и фамилии. Я хотел бы проверить, находится ли человек в одном фрейме данных в другом.
Ответы:
Если вы хотите проверить равные значения в определенном столбце, скажем, Name, вы можете объединить оба кадра данных в новый:
mergedStuff = pd.merge(df1, df2, on=['Name'], how='inner')
mergedStuff.head()
Я думаю, что это более эффективно и быстрее, чем where
если у вас большой набор данных
Сравнение значений в двух разных столбцах
Используя set, получите уникальные значения в каждом столбце. Пересечение этих двух наборов обеспечит уникальные значения в обоих столбцах.
Пример:
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'}