Как разделить пустые и ненулевые содержащие строки в два разных фрейма данных? - PullRequest
0 голосов
/ 21 сентября 2018

Скажем, у меня есть большой DataFrame (> 10000 строк), в котором есть несколько строк, содержащих один или несколько нулей.Как удалить все строки, содержащие значение NULL в одном или нескольких его столбцах, из исходного DataFrame и поместить строки в другой DataFrame?

например:

Исходный DataFrame:

         a    b    c
1    "foo"    5    3
2    "bar"    9    1
3      NaN    5    4
4    "foo"  NaN    1

ненулевой фрейм данных:

         a    b    c
1    "foo"    5    3
2    "bar"    9    1

нуль, содержащий фрейм данных:

         a    b    c
1      NaN    5    4
2    "foo"  NaN    1

1 Ответ

0 голосов
/ 21 сентября 2018

Используйте DataFrame.isna для проверки пропущенных значений:

print (df.isna())
#print (df.isnull())
       a      b      c
1  False  False  False
2  False  False  False
3   True  False  False
4  False   True  False

и проверьте, если хотя бы True для строки, DataFrame.any:

mask = df.isna().any(axis=1)
#oldier pandas versions
mask = df.isnull().any(axis=1)
print (mask)
1    False
2    False
3     True
4     True
dtype: bool

Последний фильтр по boolean indexing - ~ предназначен для инвертирования логической маски:

df1 = df[~mask]
df2 = df[mask]

print (df1)
     a    b  c
1  foo  5.0  3
2  bar  9.0  1

print (df2)
     a    b  c
3  NaN  5.0  4
4  foo  NaN  1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...