удаление не совпадающих строк из df путем проверки в другом df

#python #python-3.x #pandas #dataframe

#python #python-3.x #pandas #фрейм данных

Вопрос:

У меня есть 2 фрейма данных. Я хочу удалить элементы из второго фрейма данных, которых нет в первом фрейме данных.

df1

 a  

tom
mat
stuart
 

df2

 b

tom
mat
max
 

Ожидаемый df после удаления не совпадающего значения b из a :

df1

 a  

tom
mat
stuart
 

df2

 b

tom
mat

 

Комментарии:

1. Если я правильно понимаю, вы хотите удалить конфликтующие значения?

2. да, но только в df2

Ответ №1:

Для меня это не похоже на фреймы данных.. Учитывая ваш ввод, вот один из способов (из многих) достижения этого

 >>> s1

0       tom
1      matt
2    stuart
dtype: object

>>> s2

0     tom
1    matt
2     max
dtype: object

>>> s1[s1 == s2]
0     tom
1    matt
dtype: object
 

Ответ №2:

Я предлагаю внутреннее соединение, например:

 import pandas as pd
df1 = pd.DataFrame({'a':['tom','mat','stuart']})
df2 = pd.DataFrame({'b':['tom','mat','max']})
df2 = pd.merge(df1,df2, left_on='a', right_on='b', how = 'inner')