计算csv中"NaN"(不是零或空格)的数量

WLC*_*WLC 4 python nan python-3.x pandas

是否可以让Python计算csv文件中'NaN'(作为字符串/文本)的数量?尝试使用pandas' read_csv,但是一些具有空白的列也被读作NaN.我所知道的唯一工作方法是使用excel查找'NaN'作为值.

谁知道其他方法?提前致谢!

Bra*_*mon 5

你可以使用,pd.read_csv但你需要两个参数:na_valueskeep_default_na.

  1. na_values:

要识别为NA/NaN的其他字符串.如果dict通过,则具体的每列NA值.默认情况下,以下值被解释为NaN:'','#N/A','#N/AN/A','#N',' - 1.#IND',' - .#QNAN', '-NaN',' - nan','1.#IND','1.#QNAN','N/A','NA','NULL','NaN','nan'`.

  1. keep_default_na:

如果指定了na_values并且keep_default_na为False , 则会覆盖默认的NaN值,否则它们将被附加到.

所以在你的情况下:

pd.read_csv('path/to/file.csv', na_values='NaN', keep_default_na=False)
Run Code Online (Sandbox Code Playgroud)

如果你想要更加"自由",那么你可能想要一些类似的东西na_values=['nan', 'NaN']- 关键是这些将被严格解释.

例如 - 假设您有以下CSV文件,其中包含1个文字NaN和两个空格:

在此输入图像描述

import pandas as pd
import numpy as np
df = pd.read_csv('input/sample.csv', na_values='NaN', keep_default_na=False)
print(np.count_nonzero(df.isnull().values))
# 1
Run Code Online (Sandbox Code Playgroud)