2017-01-25 139 views
1

基於值的數量,我有以下數據框:刪除數據框中行大熊貓在表

N numbers 
n1 1,2,3 
n2 4,6,2 
n3 1 
n4 2,5 
n5 6 

我需要刪除其中numbers只有一個值的行。什麼是最有效的方式來做到這一點?

+0

@約翰高爾特 所有的號碼都不同 – Ekaterina

回答

4

下面是一種方法,通過拆分字符串並找到列表的len

In [226]: df 
Out[226]: 
    N numbers 
0 n1 1,2,3 
1 n2 4,6,2 
2 n3  1 
3 n4  2,5 
4 n5  6 

In [227]: df[df.numbers.str.split(',').apply(len) > 1] 
Out[227]: 
    N numbers 
0 n1 1,2,3 
1 n2 4,6,2 
3 n4  2,5 

編輯:作爲Nickil Maveli指出的那樣,你可以使用str.len(),而不是apply(len)

或者,如果你的數據組織使得多個號碼將有,逗號,那麼你就可以

In [229]: df[df.numbers.str.contains(',')] 
Out[229]: 
    N numbers 
0 n1 1,2,3 
1 n2 4,6,2 
3 n4  2,5 
+0

而不是'應用(LEN)','str.len()'會檢查元素的數量更快的量化方式。 –

+0

確實如此,但以前在不同的用例中,很少有字符串方法不會更快。感謝這一點,將更新。 – Zero

1

您可以直接計算逗號。這使得有機會調整所需數量的物品。

df[df.numbers.str.count(',') > 0] 

    N numbers 
0 n1 1,2,3 
1 n2 4,6,2 
3 n4  2,5