我有以下DataFrame:

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

关于python - 根据表格中的值数量删除Pandas中的DataFrame行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41857337/

10-13 07:37