[英]How to filter rows containing empty lists in a pandas DataFrame?
我有一個如下所示的 DataFrame:
A B C D
foo foo foo ['list_value']
bar bar bar ['list_value', 'another_list_value']
baz baz baz []
如何過濾掉空列表? 我正在嘗試.isin
但它給我一個錯誤:
df[df['D'].isin([])]
SystemError: <built-in method view of numpy.ndarray object at 0x0000017ECA74BF30> returned a result with an error set
我也檢查了這個問題,但無法弄清楚如何在 DataFrame 上下文中實現。
任何幫助將不勝感激。
通過astype
將列表轉換為 boolean ,空列表返回False
s,因此過濾工作很好:
df1 = df[df['D'].astype(bool)]
print (df1)
A B C D
0 foo foo foo [list_value]
1 bar bar bar [list_value, another_list_value]
另一種解決方案是使用Series.str.len
按長度過濾 - 它適用於所有可迭代對象:
df1 = df[df['D'].str.len() != 0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.