我有一个如下所示的数据框:
A B C D
foo foo foo ['list_value']
bar bar bar ['list_value', 'another_list_value']
baz baz baz []
Run Code Online (Sandbox Code Playgroud)
如何过滤掉空列表?我正在尝试,.isin但它给了我一个错误:
df[df['D'].isin([])]
SystemError: <built-in method view of numpy.ndarray object at 0x0000017ECA74BF30> returned a result with an error set
Run Code Online (Sandbox Code Playgroud)
我也检查了这个问题,但无法弄清楚如何在 DataFrame 上下文中实现。
任何帮助将不胜感激。
将列表转换为布尔值 by astype,空列表返回Falses,因此过滤效果很好:
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]
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是按长度过滤Series.str.len- 它适用于所有可迭代对象:
df1 = df[df['D'].str.len() != 0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2640 次 |
| 最近记录: |