Определить, какие значения столбца не входят во второй столбец
У меня есть DataFrame из двух стобцов.
Как мне автоматизированно проверить, какие из значений левого столбца есть в правом?
Чтобы было:
Элемент1 - False
Элемент2 - True
Были попытки создать цикл, но получилась ерунда полная.
Пытаюсь проверить перебором наличие всех элементов из первого столбца во втором столбце, но что-то не работает:
df = pd.read_excel('Motiv_sferi.xlsx', sheet_name='Лист4')
list = df['Столбец2']
for elem in df['Столбец1']:
print(elem, elem in list)
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Есть такая функция isin:
import pandas as pd
df = pd.DataFrame({'Столбец1': list(range(10)), 'Столбец2': list(range(5,15))})
df
Столбец1 Столбец2
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
6 6 11
7 7 12
8 8 13
9 9 14
df['Столбец1'].isin(df['Столбец2'])
0 False
1 False
2 False
3 False
4 False
5 True
6 True
7 True
8 True
9 True
Name: Столбец1, dtype: bool
df.loc[df['Столбец1'].isin(df['Столбец2']), 'Столбец1'].values
array([5, 6, 7, 8, 9])
Автор решения: MaxU
→ Ссылка
Ещё один вариант решения:
res = df.query("Столбец1 in Столбец2")["Столбец1"]