[英]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.dtype
是float64
,您可以使用以下任一方法:
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.