2016-10-13 15 views
1

I持ってDATAFRAME(データベースからの抽出物)のフィールドに表示可能な値以下の群:順序/優先復帰

(N2 | N1 | N11 | N12 | N3 | N4 | N6 | N10 | N13 | N5 | N7 | N8 | N9)

は、フィールドには、例えば、任意の組み合わせで上記のいずれかを含めることができます。

"N1、N6、N9"

私はフィールドのすべての要素から抽出したいと1つN9> N8> N7> N5を意味する最も高い「ランク」は、上記のグループの順番に従います。

したがって、この例では "N9"が返されます。 "N1、N3、N11"は "N3"を返します。

これはRegExで可能ですか?私はPython/Pandasを使っています。

ありがとうございます!

答えて

1

dataという名前のデータ列にデータフレームdfがあることを考慮すると、ここでは正規表現を使用しない簡単な方法があります。文字列を列に分割し、結果のリストをソートして最初の要素を取る:

df.data.str.split(',').apply(lambda l: sorted(l, reverse=True)[0]) 
Out[7]: 
0 N9 
1 N3 
Name: data, dtype: object 
+0

こんにちは。迅速な答えをありがとう。私は、例えばN13とN9のような場合にはうまくいかないと思う: –

+0

なぜ? N9> N13あなたの例ではN3> N11と同じ方法です – Boud