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

Python DataFrame特定列转行的实现方法求助

解决方案

你需要把宽格式的货币对行情数据转换成按指标分组、货币对为列的格式,这可以通过Pandas的列名拆分和数据重塑操作轻松实现,下面是具体步骤和代码:

假设你的输入DataFrame结构如下(单日期示例):

Date  EURUSD_Open  EURUSD_High  EURUSD_Low  EURUSD_Close  GBPUSD_Open  GBPUSD_High  GBPUSD_Low  GBPUSD_Close
0  2023-01-01        1.050        1.060       1.040         1.055        1.220        1.230       1.210         1.225

实现代码:

import pandas as pd

# 提取日期(如果不需要保留日期可跳过此步)
target_date = df['Date'].iloc[0]

# 移除Date列,专注处理行情数据列
df_data = df.drop('Date', axis=1)

# 将列名拆分为「货币对」和「指标」的多级索引
df_data.columns = df_data.columns.str.split('_', expand=True)

# 重塑数据:转置后调整层级,得到目标格式
result = df_data.T.unstack(level=0)
# 整理索引和列名,让结果更整洁
result.index = result.index.get_level_values(1)
result.columns.name = None
result.index.name = None

print(result)

输出结果:

EURUSD  GBPUSD
Open    1.050   1.220
High    1.060   1.230
Low     1.040   1.210
Close   1.055   1.225

额外说明:

  • 如果你的DataFrame包含多个日期,想要按日期分别生成这样的表格,可以用groupby('Date')循环处理每个日期的数据;
  • 列名拆分时如果你的分隔符不是_,只需要修改str.split里的参数即可;
  • 如果需要保留日期作为结果的一部分,可以把日期添加为结果的一个列或者索引层级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:18:32