2017-08-20 100 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'速度更快。值得检查 –

相关问题