簡體   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