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

基于多数据集变量的石油相关数据组织与预测技术问询

数据整理与处理方案

1. 数据合并:拒绝手动Excel,用Python Pandas高效处理

  • 绝对不要手动合并Excel,效率低易出错且不可复现,用Pandas几步就能搞定:
    • 第一步:读取所有数据集,统一时间列格式为datetime类型
      import pandas as pd
      
      # 读取各数据集,自动解析时间列
      production = pd.read_csv('oil_production.csv', parse_dates=['date'])
      consumption = pd.read_csv('oil_consumption.csv', parse_dates=['date'])
      oil_price = pd.read_csv('crude_oil_price.csv', parse_dates=['date'])
      stock_price = pd.read_csv('oil_stock.csv', parse_dates=['date'])
      
    • 第二步:按时间列逐步合并所有数据集,用merge指定匹配键,保留所有时间点
      # 先合并产量与消费数据
      merged_data = pd.merge(production, consumption, on='date', how='outer')
      # 再依次合并油价与股票价格数据
      merged_data = pd.merge(merged_data, oil_price, on='date', how='outer')
      merged_data = pd.merge(merged_data, stock_price, on='date', how='outer')
      
    • 最后将合并好的数据存为parquet格式(比CSV体积小、读写快),方便后续复用
      merged_data.to_parquet('merged_oil_data.parquet')
      

2. 可扩展的数据组织方式:分层结构+通用加载函数

  • 用分层文件夹管理不同类型/地区的数据,结构清晰易扩展:
    data/
      ├── production/
      │   ├── us_oil_production.csv
      │   ├── eu_oil_production.csv
      │   └── ...
      ├── consumption/
      │   ├── us_oil_consumption.csv
      │   └── ...
      ├── oil_price/
      │   ├── brent_crude.csv
      │   ├── wti_crude.csv
      │   └── ...
      └── stocks/
          ├── exxon_mobil.csv
          ├── chevron.csv
          └── ...
    
  • 用配置文件(比如data_config.yaml)记录每个数据源的路径、时间列名、标签信息,新增数据时仅需更新配置,无需修改核心代码:
    production:
      - path: data/production/us_oil_production.csv
        date_col: date
        value_col: production
        country: US
    oil_price:
      - path: data/oil_price/brent_crude.csv
        date_col: date
        value_col: price
        type: brent
    
  • 写一个通用加载函数,读取配置中的所有数据并自动添加标签列(如country、type),新增数据直接放入对应文件夹、更新配置即可,完全不影响后续分析逻辑

3. 时间频率差异处理:两种思路按需选择

思路1:日度数据降频到月度(适合以月度指标为核心分析)

  • 将日度油价、股票价格转换为月度数据,常用聚合方式:
    • 月度平均值:适合反映整体月度水平
      # 油价转月度平均
      oil_price_monthly = oil_price.resample('M', on='date').mean().reset_index()
      # 股票价格可取月度最后一个交易日收盘价,或月度平均
      stock_price_monthly = stock_price.resample('M', on='date').last().reset_index()
      
    • 这种方法适配以月度产量/消费为核心的关联分析场景

思路2:月度数据升频到日度(适合以日度指标为核心分析)

  • 如果要分析日度股票价格与产量的关联,需将月度产量扩展到日度,常用填充方式:
    • 前向填充(ffill):将当月产量值填充到当月所有日期,适合月度内产量稳定的场景
      # 将月度产量的日期设为当月第一天,再升频到日度并前向填充
      production_daily = production.set_index('date').asfreq('D').ffill().reset_index()
      
    • 线性插值:适合产量随时间线性变化的场景,但石油产量波动小,前向填充足够满足需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:40:41