Список имен столбцов, имеющих как минимум 1 пустое значение и общее количество нулевых значений, соответствующих каждому столбцу pandas - PullRequest
1 голос
/ 01 марта 2020

Привет У меня есть код, который печатает имена столбцов вместе с нулевыми значениями в столбцах:

A    B     C    D
1    1     4    NAN
2    2     5     NAN
3    NAN   6     NAN

Мой код

[IN]res = list(df.isnull().sum().items())
[IN]print(res)

Токовый выход

[('A', 0), ('B', 1), ('C', 0), ('D', 3)]

Ожидаемый результат:

[('B', 1), ('D', 3)]

Так что в основном я sh удаляю столбцы, в которых есть 0 нулевых значений и возвращать только столбцы с как минимум 1 нулевым значением.

1 Ответ

2 голосов
/ 01 марта 2020

Первая идея заключается в использовании boolean indexing:

s = df.isnull().sum()
res = list(s[s > 0].items())
print (res)
[('B', 1), ('D', 3)]

Или фильтрации с использованием callable:

res = list(df.isnull().sum()[lambda x: x > 0].items())

Или фильтрации в понимании списка:

res = [(k, v) for k, v in df.isnull().sum().items() if v > 0]
...