我有一个看起来像这样的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
我也检查了this问题,但不知道如何在DataFrame上下文中实现。
任何帮助将不胜感激。
答案 0 :(得分:1)
将列表转换为DaggerViewModelFactory
的布尔值,空列表返回astype
,因此过滤效果很好:
False
另一种解决方案是使用Series.str.len
按长度过滤-它适用于所有可迭代项:
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]