我試圖在某些列中找到所有 nan 值,然后列印一條陳述句,說它在這些列中找到了 nan 條目。
import pandas as pd
import numpy as np
data=[[np.nan, 'Indiana','[email protected]']]
df=pd.DataFrame(data,columns=['Name','State','Email'])
req_dict={"Name","Email"}
這是示例資料框,請注意如何需要 Name 和 Email 但 State 不是這是因為并非所有列都需要在其中包含值
我試圖撰寫一個函式來執行此操作,但它沒有按預期作業
def req_cols(df,req_dict):
for d in req_dict:
for i in df.index():
if df.loc[i,d]== pd.notnull():
print('a blank was found in' d)
return
我知道一個函式對此有點過分,但在實際專案中是有意義的。
我希望得到一份列印宣告,上面寫著“在名稱中發現了一個空白”
如何通過使用單獨字典中的列名來創建函式以在 df 中查找空白
uj5u.com熱心網友回復:
嘗試使用.isna() .any():
for c in req_dict:
if df[c].isna().any():
print("a blank was found in", c)
印刷:
a blank was found in Name
完整示例:
data = [[np.nan, "Indiana", "[email protected]"]]
df = pd.DataFrame(data, columns=["Name", "State", "Email"])
req_dict = {"Name", "Email"}
def check_nan_columns(df, cols):
out = []
for c in cols:
if df[c].isna().any():
out.append(c)
return out
for c in check_nan_columns(df, req_dict):
print("a blank was found in", c)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/525443.html
