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

如何用Python从字符串提取指定数据存入DataFrame并获取后续内容?

从目标字符串提取信息并生成Python DataFrame

当然可以!这种定位特定文本后提取后续内容的需求,用正则表达式来处理最精准高效了,刚好能完美匹配你要的信息。下面是完整的实现方案:

实现步骤

1. 导入所需库

首先我们需要re模块来做正则匹配,pandas来生成DataFrame:

import re
import pandas as pd

2. 定义原始字符串并提取字段

针对你给出的原始字符串,我们可以通过正则表达式精准匹配每个目标字段的内容:

# 原始字符串
text = "Last year's Fortune rank: No.3 2016 revenue $215.6 billion One-year Revenue Change: -7.7%"

# 提取排名(去掉No.,只保留数字)
fortune_rank = re.search(r"Last year's Fortune rank: No\.(\d+)", text).group(1)

# 提取营收数字(去掉$和billion,保留数值)
revenue_2016 = re.search(r"2016 revenue \$(\d+\.\d+) billion", text).group(1)

# 提取营收变化率
revenue_change = re.search(r"One-year Revenue Change: (-?\d+\.\d%)", text).group(1)

3. 整理成目标格式并生成DataFrame

把提取到的内容整理成你需要的格式,再转换成DataFrame:

# 整理成目标格式的字符串
formatted_text = (
    f"Last year's Fortune rank: {fortune_rank} "
    f"2016 revenue ($B): {revenue_2016} "
    f"One-year revenue change: {revenue_change}"
)

# 生成DataFrame
data = {
    "Last year's Fortune rank": [int(fortune_rank)],
    "2016 revenue ($B)": [float(revenue_2016)],
    "One-year revenue change": [revenue_change]
}
df = pd.DataFrame(data)

# 输出结果
print("整理后的文本:")
print(formatted_text)
print("\n生成的DataFrame:")
print(df)

输出效果

运行代码后,你会得到:

整理后的文本:
Last year's Fortune rank: 3 2016 revenue ($B): 215.6 One-year revenue change: -7.7%

生成的DataFrame:
   Last year's Fortune rank  2016 revenue ($B) One-year revenue change
0                          3              215.6                   -7.7%

正则表达式说明

  • Last year's Fortune rank: No\.(\d+):匹配排名部分,No\.转义点号避免匹配任意字符,(\d+)捕获数字部分
  • 2016 revenue \$(\d+\.\d+) billion:匹配营收,\$转义美元符号,(\d+\.\d+)捕获带小数的数值
  • One-year Revenue Change: (-?\d+\.\d%):匹配变化率,-?匹配可选的负号,(\d+\.\d%)捕获带百分号的数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:09:21