簡體   English   中英

檢查 Pandas Groupby 是否為空

[英]Check if Pandas Groupby is empty

我有一個用例,我在其中過濾作為參數提供的row_key

我知道檢查DataFrame的標准empty屬性,但是找不到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")

我知道我可以在 grouped-dataframed 上使用recent_index ,但我想檢查是否有更好的方法來處理這個問題

查詢.ngroups屬性,>= 1 行至少應存在 1 個組:

if not filter_df.ngroups:
    # no row key present

有關ngroups的更多信息,請參閱我的這篇文章


上面的答案假設您無法提前知道創建 groupBy object,但如果可以,最好在條件步驟中檢查,然后您可以檢查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()

處理此問題的最佳方法是在其他答案所述的分組條件之前過濾dataframe

但是我自己嘗試了以下解決方案。


if filter_df.size().empty:
   print("Empty DataFrame")
 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM