给定数据框df
,我会应用一些条件df[condition]
并检索一个子集。我只想检查子集中是否有任何行 - 这会告诉我条件是有效的。
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
检查过滤后的数据框是否有行的最佳方法是什么?以下是一些不起作用的方法:
if df[df.Col1 == 1]:
提供ValueError: The truth value of a DataFrame is ambiguous.
if df[df.Col1 == 1].any():
同时提供ValueError
我想我可以测试len
。还有其他方法吗?
答案 0 :(得分:6)
您可以使用df.empty
:
df_conditional = df.loc[df['column_name'] == some_value]
if not df_conditional.empty:
... # process dataframe results