Python循环提取时序数据生成DataFrame出现行列值拼接异常如何修复
问题修复方案
问题根因
- 原代码每次循环都会重新创建DataFrame并覆盖上一次的
new_entry变量,之前的遍历结果会全部丢失 - 原代码错误地将单条时序的
name、external_id作为DataFrame的列名,而不是行的字段值,因此你看到的列名“拼接”本质是最后一次循环得到的时序对象属性覆盖了之前的列名设置,同时所有单元格没有赋值,默认填充NaN
修复代码
import pandas as pd # 初始化空列表存储所有时序数据的属性 ts_data = [] # 遍历获取到的所有时序对象,limit可修改为你需要的数值 for ts in src_client.time_series.list(limit=2): # 按行维度存入单条时序的三个字段 ts_data.append({ "id": ts.id, "name": ts.name, "external_id": ts.external_id }) # 一次性生成结构化DataFrame df = pd.DataFrame(ts_data) # 导出到Excel,不需要导出默认行索引可加index=False参数 df.to_excel("时序数据导出.xlsx", index=False)
效果说明
生成的DataFrame会为每一条时序数据单独生成一行,包含id、name、external_id三列,导出Excel后可以直接读取使用。
内容的提问来源于stack exchange,提问作者ZZZSharePoint
相关产品推荐
相关产品推荐

