我有以下一组可能出现在 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”。
这可以通过正则表达式实现吗?我在这方面使用 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
关于python - 正则表达式的有序/优先返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024526/