pandas讀取excel統(tǒng)計空值數(shù)量錯誤的解決方法
問題: pd.read_excel()讀取excel數(shù)據后,用pd.isnull().sum()統(tǒng)計空值數(shù)量不對,代碼如下
import pandas as pd
df = pd.read_excel('test.xlsx',dtype=str)
# 剔除空格
df = df.applymap(lambda x : str(x).strip())
print("b列為空的個數(shù)為"+ str(pd.isnull(df['b']).sum())) # 打印出來b列中為空的是0個
excel數(shù)據長這樣,B2是一個空格,希望得到空值為2的結果

問題分析:
讀取excel后的df是這樣

使用applymap剔除空格后的df是這樣

讀取excel后的df的值(df.values)

使用applymap剔除空格后的df的值(df.values)

可以看到,在applymap方法處理后
值values的變化:一個空格變成了’’,之前的nan變成了’nan’(這里是字符串nan,當然不為空)
pd.isnull()只會統(tǒng)計NaN的數(shù)量,一個是字符串’‘,一個是字符串’nan’,因此都統(tǒng)計不到
解決: 將’'和’nan’全部替換為np.nan,isnull就可以統(tǒng)計到
import numpy as np
import pandas as pd
df = pd.read_excel('test.xlsx',dtype=str)
# 剔除空格
df = df.applymap(lambda x : str(x).strip())
df[df == ''] = np.nan
df[df == 'nan'] = np.nan
print("b列為空的個數(shù)為"+ str(pd.isnull(df['b']).sum())) # 打印出來b列中為空的是2個到此這篇關于pandas讀取excel統(tǒng)計空值數(shù)量錯誤的解決方法的文章就介紹到這了,更多相關pandas讀取excel空值內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

