Iは、次のデータフレームを有する:削除データフレーム列
N numbers
n1 1,2,3
n2 4,6,2
n3 1
n4 2,5
n5 6
を私はnumbers
が唯一つの値を持つ行を削除する必要があります。これを行う最も効率的な方法は何ですか?
Iは、次のデータフレームを有する:削除データフレーム列
N numbers
n1 1,2,3
n2 4,6,2
n3 1
n4 2,5
n5 6
を私はnumbers
が唯一つの値を持つ行を削除する必要があります。これを行う最も効率的な方法は何ですか?
ここでは、文字列を分割してリストの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
異なる '適用さ(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