You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas提取字符串最大数值及所属非空格完整词段方法

解决方案

实现逻辑:遍历每一行文本的空格分隔词段,匹配包含对应最大数值的词段即可实现需求,完整可运行代码如下:

from numpy import floor, int64
from numpy.core import numeric
import pandas as pd
import re

data = [['aaa', 10], ['nick12 text 1 a 1000a', 15], ['juli078 aq 199 299-01 aaa', 14]]

df = pd.DataFrame(data, columns = ['col1', 'col2'])

pat = (r'(\d+(?:\.\d+)?)')
df['Number'] = df['col1'].str.extractall(pat).astype(int).max(level=0)
df['Number'] = df['Number'].fillna(0)
df['Number'] = df['Number'].astype(int)

# 新增以下代码生成NumberText列
def get_number_text(row):
    if row['Number'] == 0:
        return ''
    # 按空格拆分所有词段
    tokens = row['col1'].split()
    for token in tokens:
        # 提取当前词段所有数字
        nums = re.findall(r'\d+', token)
        if not nums:
            continue
        # 词段最大数字等于Number则返回该词段
        if max(map(int, nums)) == row['Number']:
            return token
    return ''

df['NumberText'] = df.apply(get_number_text, axis=1)

print(df)

运行输出结果与你预期一致:

col1  col2  Number NumberText
0                        aaa    10       0           
1      nick12 text 1 a 1000a    15    1000      1000a
2  juli078 aq 199 299-01 aaa    14     299    299-01

内容的提问来源于stack exchange,提问作者Kalenji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:36:04