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

如何将含日期与价格的文本转换为列表并生成DataFrame?

解决方案

1. 解析文本提取日期与价格

先把原始文本里的日期和对应价格拆分出来,假设你的文本是按月份分组、每行格式为「日期: 价格」的结构,用Python字符串处理就能实现:

示例代码

# 替换成你的实际原始文本内容
raw_text = """Oct 2022
1: € 50
2: —
3: € 60
4: —
Nov 2022
1: € 45
2: € 55
3: —
"""

dates = []
prices = []
current_month = None
target_year = 2022

# 逐行遍历处理
for line in raw_text.strip().split('\n'):
    line = line.strip()
    if not line:
        continue
    # 识别月份行
    if line.endswith(str(target_year)):
        current_month = line.split()[0]
        continue
    # 拆分日期和价格
    day_part, price_part = line.split(':', 1)
    day = day_part.strip()
    price_str = price_part.strip()
    
    # 拼接完整日期字符串
    full_date = f"{day}-{current_month}-{target_year}"
    dates.append(full_date)
    
    # 处理价格:无价格标记转为None,有价格则提取数字
    if price_str == '—':
        prices.append(None)
    else:
        # 提取欧元价格中的数字,比如"€ 50"转为50.0
        price_num = float(price_str.split()[1])
        prices.append(price_num)

2. 生成Pandas DataFrame

拿到日期和价格列表后,直接用Pandas构造DataFrame即可:

import pandas as pd

# 创建DataFrame
df = pd.DataFrame({
    '日期': dates,
    '价格(€)': prices
})

# 可选:将日期列转为datetime类型,方便后续日期相关操作
df['日期'] = pd.to_datetime(df['日期'], format='%d-%b-%Y')

# 查看结果
print(df)

3. 适配不同文本格式的说明

如果你的原始文本是多列排版、表格样式等其他格式,只需要调整文本解析的逻辑——核心是先定位月份信息,再把每个日期和对应的价格一一匹配。另外,把无价格的「—」转为None后,Pandas会自动识别为NaN,方便后续做数据清洗或分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:55:17