我有以下pandas数据帧:
Col
0 []
1 []
2 [(foo, bar), (foo, bar)]
3 []
4 []
5 []
6 []
7 [(foo, bar), (foo, bar)]
我想删除所有空列表(*):
Col
2 [(foo, bar), (foo, bar)]
7 [(foo, bar), (foo, bar)]
对于上面我尝试过:
df = df.loc[df.Col != '[]']
df
和
df.pipe(lambda d: d[d['Col'] != '[]'])
然而,它们都没有奏效。所以,我的问题是如何从数据框中删除所有空列表,如(*)?。
答案 0 :(得分:3)
切换数据框,好像值为strings而不是列表可能有效:
df[df.astype(str)['Col'] != '[]']
答案 1 :(得分:1)
您可以使用.str
访问者检查列表的长度:
df[df.Col.str.len() != 0]
# Col
#3 [(foo, bar), (foo, bar)]
#6 [(foo, bar), (foo, bar)]