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

如何将数据库返回的含Order和datetime对象的列表转为pandas DataFrame

实现代码

核心逻辑:你拿到的列表是Order对象和对应的时间戳交替排列的结构,我们可以按步长2遍历列表,成对提取Order属性和对应时间,再构造DataFrame。

import pandas as pd
import datetime
# 导入你自己的数据结构类,根据实际import路径调整
from routes_data_loading.data_structures import Order, Location

# 你的原始数据库返回列表
raw_data = [
    Order(id=22617, frm=datetime.datetime(2020, 6, 1, 8, 0), to=datetime.datetime(2020, 6, 1, 10, 0), loc=Location(lat=14.491272455461, lng=50.130463596998), address='Makedonska 619/11, Praha', duration=600), 
    datetime.datetime(2020, 6, 1, 11, 38, 46), 
    Order(id=22615, frm=datetime.datetime(2020, 6, 1, 8, 0), to=datetime.datetime(2020, 6, 1, 14, 0), loc=Location(lat=14.681866313487, lng=50.007439571346), address='Výhledová 256, Říčany', duration=600), 
    datetime.datetime(2020, 6, 1, 10, 33, 33)
]

# 构造行数据列表
rows = []
for idx in range(0, len(raw_data), 2):
    order = raw_data[idx]
    time_val = raw_data[idx+1]
    # 校验类型避免数据错位
    if isinstance(order, Order) and isinstance(time_val, datetime.datetime):
        rows.append({
            "id": order.id,
            "frm": order.frm,
            "to": order.to,
            "lat": order.loc.lat,
            "lng": order.loc.lng,
            "address": order.address,
            "duration": order.duration,
            "time": time_val
        })

# 生成DataFrame
df = pd.DataFrame(rows)

# 如果需要导出为分号分隔的csv,执行下面的代码
# df.to_csv("output.csv", sep=";", index=False, encoding="utf-8-sig")

结果验证

生成的df结构和要求完全一致,输出内容如下:

idfrmtolatlngaddressdurationtime
226172020-06-01 08:00:002020-06-01 10:00:0014.49127245546150.130463596998Makedonska 619/11, Praha6002020-06-01 11:38:46
226152020-06-01 08:00:002020-06-01 14:00:0014.68186631348750.007439571346Výhledová 256, Říčany6002020-06-01 10:33:33

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:54:02