我有以下一组可能的值,它们可以出现在DataFrame的字段中(从数据库中提取):

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

该字段可以包含上述任意内容的任意组合,例如:

“ N1,N6,N9”

我想从该字段的每个元素中仅提取具有最高“等级”的元素,即N9> N8> N7> N5 ...,根据我在上面的小组的顺序。

因此从示例中它将返回“ N9”。对于“ N1,N3,N11”,它将返回“ N3”。

RegEx有可能吗?我正在使用Python / Pandas。

在此先多谢!

最佳答案

考虑到您有一个名为df的数据列的数据框data,这是一种不使用正则表达式的简单方法。将字符串拆分为列,然后对结果列表进行排序并采用第一个元素:

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

10-06 07:37