Python 检查Pandas Groupby是否为空
我有一个用例,在这个用例中,我对作为参数提供的Python 检查Pandas Groupby是否为空,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个用例,在这个用例中,我对作为参数提供的行\u键进行过滤 我知道标准的empty属性用于检查DataFrame,但是在DataFrameGroupBy 下面是演示用例的代码片段,提供的数据是虚拟的- import pandas as pd from io import StringIO df = pd.read_csv(StringIO(""" Name,Value,row_key,row_label XYZ,100,abc,"Label - 2&
行\u键进行过滤
我知道标准的empty
属性用于检查DataFrame
,但是在DataFrameGroupBy
下面是演示用例的代码片段,提供的数据是虚拟的-
import pandas as pd
from io import StringIO
df = pd.read_csv(StringIO("""
Name,Value,row_key,row_label
XYZ,100,abc,"Label - 2"
ASD,100,abc,"Label - 2"
GHJ,1000,abc,"Label - 2"
KLI,100,abc,"Label - 2"
BHY,1009,bnm,"Label - 2"
TGB,1409,bnm,"Label - 2"
YUJ,1509,bnm,"Label - 2"
KUT,1609,bnm,"Label - 2"
"""))
invalid_row_key = 'fgh'
filter_df = df[df['row_key'] == invalid_row_key].groupby('row_label')
#### I want something similar to below if case , to handle if the filter_df is empty
if filter_df.empty:
print("No Row Key Present")
我知道我可以在分组的dataframed上使用recent_index
,但我想检查是否有更好的方法来处理此问题查询.ngroups
属性,对于>=1行,至少应存在一个组:
if not filter_df.ngroups:
# no row key present
有关组的详细信息,请参见
上面的答案假设您无法在创建groupBy对象之前进行判断,但如果可以,最好在条件步骤中进行检查,然后可以检查DataFrame.empty
属性,这更直观:
filter_df = df[df['row_key'] == invalid_row_key]
if filter_df.empty:
# no rows present
else:
filter_df.groupby('row_label').doSomethingElse()
处理此问题的最佳方法是在其他答案所述的分组条件之前过滤数据帧
然而,我自己尝试了以下解决方案
if filter_df.size().empty:
print("Empty DataFrame")
在分组前检查df[df['row\u key']==invalid\u row\u key]
是否为空怎么样?是的,Chris,现在我想了想,这会更合理。这很合理,我最终使用了size()。现在为空,但这是一个更好的解决方案