如何在Pandas DataFrame中过滤包含空列表的行?

时间:2019-03-13 13:11:03

标签: python pandas

我有一个看起来像这样的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上下文中实现。

任何帮助将不胜感激。

1 个答案:

答案 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]