Как я могу получить число недостающего значения в каждой строке в панде dataframe. Я хотел бы разделить фреймы данных на различные фреймы данных, которые имеют одинаковое количество пропущенных значений в каждой строке.
Любое предложение?
Вы можете применить счет к строкам следующим образом:
test_df.apply(lambda x: x.count(), axis=1)
test_df:
A B C
0: 1 1 3
1: 2 nan nan
2: nan nan nan
выход:
0: 3
1: 1
2: 0
Вы можете добавить результат в виде столбца следующим образом:
test_df['full_count'] = test_df.apply(lambda x: x.count(), axis=1)
Результат:
A B C full_count
0: 1 1 3 3
1: 2 nan nan 1
2: nan nan nan 0
При использовании панд, стараюсь избегать выполнения операций в цикле, в том числе
apply
,map
, иapplymap
т.д. Это медленно!Если вы хотите подсчитать пропущенные значения в каждом столбце, попробуйте:
df.isnull().sum()
или жеdf.isnull().sum(axis=0)
С другой стороны, вы можете рассчитывать в каждой строке (это ваш вопрос) по:
df.isnull().sum(axis=1)
Это примерно в 10 раз быстрее, чем решение Яна ван дер Вегта (кстати, он считает правильные значения, а не пропущенные значения):
источник
Самый простой способ:
источник
Или вы можете просто использовать метод info для объектов dataframe:
который обеспечивает количество ненулевых значений для каждого столбца.
источник
нулевые значения вдоль столбца,
пустые значения вдоль столбца,
нулевые значения вдоль строки,
пустые значения вдоль строки,
источник
Этот фрагмент вернет целочисленное значение общего числа столбцов с отсутствующим значением:
источник
источник
Если вы хотите количество пропущенных значений:
источник