我有以下一组可能的值,它们可以出现在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