基於值的數量,我有以下數據框:刪除數據框中行大熊貓在表
N numbers
n1 1,2,3
n2 4,6,2
n3 1
n4 2,5
n5 6
我需要刪除其中numbers
只有一個值的行。什麼是最有效的方式來做到這一點?
基於值的數量,我有以下數據框:刪除數據框中行大熊貓在表
N numbers
n1 1,2,3
n2 4,6,2
n3 1
n4 2,5
n5 6
我需要刪除其中numbers
只有一個值的行。什麼是最有效的方式來做到這一點?
下面是一種方法,通過拆分字符串並找到列表的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
而不是'應用(LEN)','str.len()'會檢查元素的數量更快的量化方式。 –
確實如此,但以前在不同的用例中,很少有字符串方法不會更快。感謝這一點,將更新。 – Zero
您可以直接計算逗號。這使得有機會調整所需數量的物品。
df[df.numbers.str.count(',') > 0]
N numbers
0 n1 1,2,3
1 n2 4,6,2
3 n4 2,5
@約翰高爾特 所有的號碼都不同 – Ekaterina