#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()