繁体   English   中英

如何在 Python 中的数据框列中获取包含空列表的行

[英]How to get rows containg empty list in a Data Frame Columns in Python

我有一个这样的数据框:

    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   []

非常感谢

由于空列表将被解释为要以矢量化方式处理的集合,我没有看到任何方法来测试它,而是深入到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  []

空列表转换为 False 作为布尔值。 使用~将其转换为 True 是一个简单的技巧。 对我来说它很容易阅读并且运行速度非常快。 绝对比使用len()快。

test[~test['B'].astype(bool)]

   A   B
0  a  []

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM