Python 根据表中的值数删除Pandas中的DataFrame行
我有以下数据帧:Python 根据表中的值数删除Pandas中的DataFrame行,python,pandas,Python,Pandas,我有以下数据帧: N numbers n1 1,2,3 n2 4,6,2 n3 1 n4 2,5 n5 6 我需要删除数字只有一个值的行。最有效的方法是什么?这里有一种方法,通过拆分字符串并查找列表的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(',
N numbers
n1 1,2,3
n2 4,6,2
n3 1
n4 2,5
n5 6
我需要删除
数字
只有一个值的行。最有效的方法是什么?这里有一种方法,通过拆分字符串并查找列表的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
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
可以直接计算逗号。这样就有机会调整所需的项目数量
df[df.numbers.str.count(',') > 0]
N numbers
0 n1 1,2,3
1 n2 4,6,2
3 n4 2,5
可以直接计算逗号。这样就有机会调整所需的项目数量
df[df.numbers.str.count(',') > 0]
N numbers
0 n1 1,2,3
1 n2 4,6,2
3 n4 2,5
@约翰·高尔特所有的数字都是different@JohnGalt所有的数字都是不同的,而不是
apply(len)
,str.len()
将是一种更快的检查元素数量的矢量化方法。是的,但之前在不同的用例中,很少有字符串方法没有更快。感谢这一点,将进行更新。apply(len)
,而不是str.len()
,它将是一种更快的检查元素数量的矢量化方法。确实如此,但之前在不同的用例中,很少有字符串方法没有更快。谢谢你,我会更新的。