Пандейский способ обработки пустых строк в isin () - PullRequest
0 голосов
/ 10 июня 2018

В последнем утверждении для печати ниже показаны три позиции, когда требуются только два «b» и «c».Как пандасный способ не включать пустые строки в результат?

print(sys.version)
print(np.__version__)
print(pd.__version__)


3.6.4
1.14.2
0.22.0

import string

ds1 = pd.Series(list(string.ascii_lowercase[:3]), (range(3)))
ds2 = pd.Series(list(string.ascii_lowercase[1:4]), (range(1,4))) 

ds1[0]=''
ds2[3]=''

print(ds1)
0
1    b
2    c
dtype: object

print(ds2)
1    b
2    c
3
dtype: object

print(ds1[ds1.isin(ds2)]) # returns three items, only want 'b' and 'c'

0
1    b
2    c
dtype: object

Я пытался использовать isnull (), чтобы нетбезрезультатно.

print(ds1.isnull())

выход:

0    False
1    False
2    False
dtype: bool

1 Ответ

0 голосов
/ 10 июня 2018

Пустые строки не соответствуют NaN, None и т. Д. Просто отфильтруйте их, как обычно.

ds1[ds1.isin(filter(None, ds2))]

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