python - 正则表达式的有序/优先返回

标签 python regex pandas

我有以下一组可能出现在 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/

相关文章:

java - 正则表达式匹配a-字母数字&b-数字&c-数字

python - 如何临时将 pandas df 转换为小写以进行重复检查?然后恢复正常

python - 纺车功能并不总是退出

python - 如何将 PyCharm 与 PySpark 链接?

python - matplotlib plt.ylim 引发错误列表对象不可调用

c# - 从 html 文件中获取 javascript 代码

python - 用于从 python 中的段落中提取句子的正则表达式

python - 在Python中分割字符串时丢失了字符串

python - 在保持数据框的同时选择列中的第二个(或第 n 个)最小值

python - 计算 groupby pandas 中独特组合的平均值