2017-08-20 68 views
1

給定一個數據幀df,我會應用一些條件df[condition]並檢索一個子集。我只想檢查子集中是否有任何行 - 這會告訴我情況是有效的。Pandaic的方式來檢查一個數據幀是否有任何行

In [551]: df 
Out[551]: 
    Col1 
0  1 
1  2 
2  3 
3  4 
4  5 
5  3 
6  1 
7  2 
8  3 

我要檢查什麼是這樣的:

if df[condition] has rows: 
    do something 

什麼是檢查過濾數據幀是否具有行的最好方法?這裏有一些方法不起作用:

  1. if df[df.Col1 == 1]:給人ValueError: The truth value of a DataFrame is ambiguous.

  2. if df[df.Col1 == 1].any():也給ValueError

我想我可以測試len。有其他方法嗎?

回答

4

你可以使用df.empty

df_conditional = df.loc[df['column_name'] == some_value] 
if not df_conditional.empty: 
    ... # process dataframe results 
+2

https://stackoverflow.com/questions/19828822/how-to-check-whether-a-pandas-dataframe-is-empty表明,使用'len'速度更快。值得檢查 –

相關問題