我有一个这样的数据框:
test = pd.DataFrame(columns=['A','B'])
test.loc[0,'A'] = 'a'
test.loc[0,'B'] = []
test.loc[1,'A'] = 'b'
test.loc[1,'B'] = ['a','b']
我想获得另一个数据框,其中包含列' B'包含一个空列表。什么是pythonic的做法?
A B
0 a []
非常感谢
答案 0 :(得分:3)
由于空列表将被解释为要以矢量化方式处理的集合,我看不到任何方法来测试它,而是深入到apply
调用:
test.B.apply(lambda c: c==[])
Out[71]:
0 True
1 False
Name: B, dtype: bool
test[test.B.apply(lambda c: c==[])]
Out[72]:
A B
0 a []
答案 1 :(得分:0)
空列表将布尔值转换为False。使用~
将其转换为True是一个简单的技巧。它很容易阅读,并且对我来说运行非常快。绝对比使用len()
更快。
test[~test['B'].astype(bool)]
A B
0 a []