Выберите строки из фрейма данных pandas, соответствующие одному из двух условий строки

#python #pandas

#питон #панды

Вопрос:

Я пытаюсь выбрать строки из фрейма данных pandas, где значение кредитной карты равно Discover или American Express. Я могу получить строки, содержащие эти значения по отдельности, но не с обоими.

 # isCorrect = trainDataRetired.loc((['CreditCard'] == 'American Express') or (trainDataRetired['CreditCard'] == 'American Express'))  

Эта строка-моя последняя попытка, но безуспешная.

Это приводит меня к колонке кредитных карт, но только с American Express

 isCorrect = trainDataRetired['CreditCard'] == 'American Express' trainDataCorrect = trainDataRetired[isCorrect] print(trainDataCorrect)  

Ответ №1:

похоже, вы используете один и тот же фильтр дважды. в любом случае, попробуйте использовать .loc, например:

 FILTER_AEX = (trainDataRetired.loc[:,'CreditCard'] == 'American Express')  FILTER_DIS = (trainDataRetired.loc[:,'CreditCard'] == 'Discover')   isCorrect = trainDataRetired.loc[FILTER_AEX | FILTER_DIS, :]   

и сверьтесь с

 isCorrect.loc[:, 'CreditCard'].unique()