2017-05-01 20 views
1

Excelからpythonスクリプトを呼び出す必要があり、データがクリーンであることを確認する必要があります。Python - セルが空の場合にエラーメッセージを表示します。

私はデータフレームをExcelファイルから取得します。許容できないシナリオの1つは、df内の特定の列に空の値を持たせることです。

エラーメッセージを表示し、その列に値が空の場合はスクリプトを終了します。

何かのように:すべての値がNaNをしている場合は、チェックのためisnullを使用することができます

答えて

3

それに対処するための効率的な方法は何か

if df['columnX'] is empty 
    print "error message" 
    sys.exit() 

わからない - TrueFalse値 - 出力はブールマスクです。

少なくとも1つがTrueであるかどうかを確認する必要がある場合は、すべての値がTrueまたはanyかどうかを確認する必要がある場合は、allが必要です。

出力はスカラーTrueFalseです:

if df['columnX'].isnull().all(): 
    print "error message" 
    sys.exit() 

サンプル:。

df = pd.DataFrame({'columnX':[np.nan] * 3}) 
print (df) 
    columnX 
0  NaN 
1  NaN 
2  NaN 

print (df['columnX'].isnull()) 
0 True 
1 True 
2 True 
Name: columnX, dtype: bool 

print (df['columnX'].isnull().all()) 
True 

print (df['columnX'].isnull().any()) 
True 

if df['columnX'].isnull().all(): 
    print "error message" 
    sys.exit() 

df = pd.DataFrame({'columnX':[np.nan] * 3 + [5.6]}) 
print (df) 
    columnX 
0  NaN 
1  NaN 
2  NaN 
3  5.6 

print (df['columnX'].isnull()) 
0  True 
1  True 
2  True 
3 False 
Name: columnX, dtype: bool 

print (df['columnX'].isnull().all()) 
False 

print (df['columnX'].isnull().any()) 
True 
+2

が、それは(ISNULLではないでしょう)。この場合、任意の()? – Vaishali

+1

@ A-Za-z - コメントありがとうございます。私は 'all'と' any'のソリューションの違いに加えています – jezrael

関連する問題