基于值的数量,我有以下数据框:删除数据框中行大熊猫在表
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