Выберите записи Dataframe с несколькими условиями со списком - PullRequest
2 голосов
/ 20 января 2020

У меня есть список текста.

thislist = ["apple", "banana", "cherry"]

У меня есть кадр данных, как показано ниже

d = {'fruit ': [apple, orange, pear, mango, banana, cherry], 'price': [1, 2, 3, 4, 5, 6], 'status':['y','y','n','n','y','n'}
df = pd.DataFrame(data=d)

Мой список и кадр данных могут быть динамическими c, поэтому я не хотел выбирать свой кадр данных путем жесткого кодирования таких переменных, как df['fruit'] == 'apple'

Как мне написать таким образом, чтобы выбрать строки с динамическим списком c? пример

df2 = (df1[(df1['fruits']==thislist[x]) & 
(df1['status'] == 'y')])

где x будет бегать по этому списку?

1 Ответ

3 голосов
/ 20 января 2020

IIU C Вы хотите isin:

df[df['fruit'].isin(thislist) & (df['status'] == 'y')]

   fruit   price status
0   apple      1      y
4  banana      5      y
...