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

如何将日期、代码、值列表转换为指定结构的Pandas DataFrame

解决方案:将三组列表转为指定格式的Pandas DataFrame

Got it!我来帮你把这三组列表转换成符合要求的Pandas DataFrame,分两种常见情况来演示,你可以根据自己的实际数据选对应的方法:

情况1:每个列表位置对应一组(date, ticker, value)

如果你的三个列表是按「日期-股票代码-对应数值」的位置一一匹配的(比如date1对应ticker1的value1,date2对应ticker2的value2),可以先创建长格式DataFrame,再转成宽格式:

import pandas as pd

# 替换成你实际的三组列表
dates = ['2023-01-01', '2023-01-02', '2023-01-03']
tickers = ['AAPL', 'GOOG', 'AAPL']
values = [150.25, 2780.50, 151.10]

# 第一步:创建长格式DataFrame,把三组数据关联起来
df_long = pd.DataFrame({
    'date': dates,
    'ticker': tickers,
    'value': values
})

# 第二步:转成宽格式,日期做索引,股票代码做列名
df_wide = df_long.pivot(index='date', columns='ticker', values='value')

# 查看结果
print(df_wide)

输出结果示例:

ticker        AAPL    GOOG
date                      
2023-01-01  150.25     NaN
2023-01-02     NaN  2780.5
2023-01-03  151.10     NaN

注:如果某个日期下没有对应股票的数值,会显示NaN,你可以用fillna()方法填充默认值(比如df_wide.fillna(0, inplace=True))

情况2:日期是唯一索引,数值是每行的多列数据

如果你的日期列表是唯一的索引项,ticker是列名,而数值列表是每个日期对应所有ticker的数值集合(比如value1是date1下所有ticker的数值组成的列表),可以直接构造DataFrame:

import pandas as pd

# 替换成你实际的三组列表
dates = ['2023-01-01', '2023-01-02', '2023-01-03']
tickers = ['AAPL', 'GOOG', 'MSFT']
values = [[150, 2800, 300], [151, 2810, 302], [152, 2820, 303]]

# 直接创建DataFrame,指定索引和列名
df = pd.DataFrame(values, index=dates, columns=tickers)

# 查看结果
print(df)

输出结果示例:

AAPL  GOOG  MSFT
2023-01-01   150  2800   300
2023-01-02   151  2810   302
2023-01-03   152  2820   303

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:30:04