Pandaic方式检查数据帧是否有任何行

cs9*_*s95 1 python dataframe pandas

给定一个数据帧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
Run Code Online (Sandbox Code Playgroud)

我想要检查的是这样的:

if df[condition] has rows:
    do something
Run Code Online (Sandbox Code Playgroud)

检查过滤后的数据框是否有行的最佳方法是什么?以下是一些不起作用的方法:

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

  2. if df[df.Col1 == 1].any(): 也给出了 ValueError

我想我可以测试一下len.还有其他方法吗?

RHS*_*159 6

你可以使用df.empty:

df_conditional = df.loc[df['column_name'] == some_value]
if not df_conditional.empty:
    ... # process dataframe results
Run Code Online (Sandbox Code Playgroud)

  • /sf/ask/1388017571/建议使用`len`更快.值得一试 (2认同)