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

如何从Pandas DataFrame生成指定格式的元组列表?

从Pandas DataFrame生成指定结构的元组列表

原始数据(data.csv)

,Date,Open,High,Low,Close,min,max
2022-10-03 12:00:00+01:00,19268.458333333332,141.95199584960938,141.97999572753906,141.30999755859375,141.42999267578125,141.42999267578125,
2022-10-04 16:00:00+01:00,19269.625,143.83799743652344,144.07699584960938,143.72999572753906,143.99000549316406,,143.99000549316406
2022-10-05 15:00:00+01:00,19270.583333333332,142.83299255371094,142.87100219726562,142.4199981689453,142.66000366210938,142.66000366210938,
2022-10-06 06:00:00+01:00,19271.208333333332,143.36000061035156,143.43600463867188,143.24000549316406,143.4010009765625,,143.4010009765625
2022-10-07 13:00:00+01:00,19272.5,141.85899353027344,142.1219940185547,141.17999267578125,141.45599365234375,141.45599365234375,

目标元组列表结构

需要生成相邻行配对的元组列表,格式如下:

tuples_list = [
        ('2022-10-03', 141.42999267578125), ('2022-10-04', 143.99000549316406), # row[0-1]
        ('2022-10-04', 143.99000549316406), ('2022-10-05', 142.66000366210938), # row[1-2]
        ('2022-10-05', 142.66000366210938), ('2022-10-06', 143.4010009765625),  # row[2-3]
        ('2022-10-06', 143.4010009765625), ('2022-10-07', 141.45599365234375),  # row[3-4]
    ]

解决方案代码

import pandas as pd

# 读取csv,将第一列设为索引(日期时间列)
df = pd.read_csv('data.csv', index_col=0)

# 处理索引,提取仅日期部分,并和Close字段组成基础元组列表
base_tuples = [
    (idx.split(' ')[0], row['Close'])
    for idx, row in df.iterrows()
]

# 构建目标格式的元组列表:遍历相邻元组,依次添加
tuples_list = []
for i in range(len(base_tuples) - 1):
    tuples_list.append(base_tuples[i])
    tuples_list.append(base_tuples[i+1])

# 打印结果验证
print(tuples_list)

代码说明

  1. 读取数据:用read_csv加载文件,指定第一列为索引(原始数据的第一列是带时区的日期时间)。
  2. 生成基础元组:遍历DataFrame的每一行,将索引(日期时间)按空格分割取前半部分(纯日期),和Close字段值组成元组,存入base_tuples。
  3. 构建目标列表:遍历base_tuples的相邻元素,依次将当前元组和下一个元组添加到结果列表,实现相邻行配对的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:35:16