2017-01-25 13 views
1

Iは、次のデータフレームを有する:削除データフレーム列

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

を私はnumbersが唯一つの値を持つ行を削除する必要があります。これを行う最も効率的な方法は何ですか?

+0

@ジョンゴールト すべての数は、代わりの – Ekaterina

答えて

4

ここでは、文字列を分割してリストのlenを見つけることによって1つの方法があります。

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が指摘するように、あなたがすることができ、その後、複数の番号が,カンマを持っているだろう、というようなデータに編成されている場合は、あなたの代わりにapply(len)

か、のstr.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 
関連する問題