Pandas优化:无需迭代将二维时间序列数组导入DataFrame
高效创建时间序列DataFrame的方法
当然有更高效的方式!你当前用的append逐行添加数据的方法效率极低——因为每次调用append都会生成一个全新的DataFrame对象,频繁的内存分配和复制会随着数据量增大显著拖慢速度。
最优解决方案
直接将你的二维时间序列数据传入pd.DataFrame的构造函数,同时指定列名即可,完全不需要循环迭代:
import pandas as pd # 一次性转换整个数据集 my_df = pd.DataFrame(timeseries.data, columns=['time', 'value'])
额外优化:转换时间戳为datetime类型
如果你的time列是Unix秒级时间戳(从示例数据看确实是),可以顺便将其转换为可读性更好的datetime类型,这一步也是向量化操作,效率很高:
# 将秒级时间戳转换为datetime格式 my_df['time'] = pd.to_datetime(my_df['time'], unit='s')
这个方法利用了pandas的底层向量化实现,能大幅提升数据加载速度,尤其是当你的时间序列包含上万甚至更多数据点时,对比循环append的性能差异会非常明显。
内容的提问来源于stack exchange,提问作者Edamame
相关产品推荐
相关产品推荐

