簡體   English   中英

計算 pandas DataFrame 中的所有 NaN

[英]Count all NaNs in a pandas DataFrame

我正在嘗試計算 pandas 系列中的 NaN 元素(數據類型 class 'numpy.float64')以了解其中有多少數據類型為 class 'pandas.core.series.Series'

這是針對 pandas 系列中的計數 null 值

import pandas as pd
oc=pd.read_csv(csv_file)
oc.count("NaN")

我預計oc,count("NaN")的 output 為 7,但它顯示'Level NaN must be same as name (None)'

count的參數不是你想要計算的(它實際上是軸名稱或索引)。

您正在尋找df.isna().values.sum() (計算整個 DataFrame 中的 NaN),或len(df) - df['column'].count() (計算特定列中的 NaN) ).

如果您的Series.dtypefloat64 ,您可以使用以下任一方法:

oc.isin([np.nan]).sum()
oc.isna().sum()

如果您的Series是混合數據類型,您可以使用以下內容:

oc.isin([np.nan, 'NaN']).sum()

oc.size :返回 dataframe 的總元素數,包括NaN
oc.count().sum() :返回 dataframe 的總元素計數,不包括NaN

因此,計算 dataframe 中NaN數量的另一種方法是對它們進行減法:

NaN_count = oc.size - oc.count().sum()

如果你的 dataframe 看起來像這樣;

aa = pd.DataFrame(np.array([[1,2,np.nan],[3,np.nan,5],[8,7,6],
                 [np.nan,np.nan,0]]), columns=['a','b','c'])
    a    b    c
0  1.0  2.0  NaN
1  3.0  NaN  5.0
2  8.0  7.0  6.0
3  NaN  NaN  0.0

要按 cols 計算'nan',你可以試試這個

aa.isnull().sum()
a    1
b    2
c    1

對於 nan 的總數

aa.isnull().values.sum()
4

只是為了好玩,你可以做任何一個

df.isnull().sum().sum()

或者

len(df)*len(df.columns) - len(df.stack())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM