Сравнение ячеек с массивом и печать строк по сравнению - PullRequest
0 голосов
/ 22 октября 2018

Я довольно новичок в python и pandas ... поэтому я использую pandas для чтения и работы с .CSV и другими файлами Excel ... и теперь у меня есть файл Excel, который выглядит примерно так:

  A B C D E
f - - - - 1
g - - - - 2
h - - - - 4
i - - - - 8
j - - - - 9

И у меня есть массив x [2,4,9,11,20] (в моем случае массив и файл excel намного больше, но я хочу пока сделать его простым), и я бы хотелсравнить столбец E с этим массивом и вывести строки, где E равно любому значению из x ... поэтому результат будет выглядеть так:

  A B C D E
g - - - - 2
h - - - - 4
j - - - - 9

Есть идеи, как мне это сделать?Спасибо за любую помощь.

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

с использованием .isin

df = pd.DataFrame({'A': [10,20,30,40,50],
                   'E':[1,2,4,8,9]})

x = [2,4,9,11,20]

df1 = df.iloc[df[df.isin(x)].dropna(how='all').index]

print (df1)

        A   E
   1    20  2
   2    30  4
   4    50  9
0 голосов
/ 22 октября 2018

Вы можете использовать логическое индексирование с pd.Series.isin:

x = [2, 4, 9, 11, 20]

df = df[df['E'].isin(x)]

В качестве альтернативы вы можете query ваш фрейм данных:

df = df.query('E in @x')
0 голосов
/ 22 октября 2018

почему бы вам не попробовать простое условное выражение, не уверенное, сработает ли это? У меня не работает какой-либо код.

df[df["E"] in our_array]

это не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...