【发布时间】:2020-09-18 12:35:33
【问题描述】:
我原来有一些时间序列数据,看起来是这样的,要做到以下几点:
- 首先将其作为数据框导入
- 将日期列设置为日期时间索引
- 将移动平均线等一些指标添加为新列
- 做一些四舍五入(整列的值)
- 将一列向上或向下移动一行(只是为了操作数据)
- 然后将df转为list(因为我需要根据一些条件循环,比循环df要快很多,因为我需要速度)
- 但现在我想将 df 转换为 dict 而不是 list,因为我想保留列名,这样更方便
但现在我发现转换为 dict 比 list 花费的时间要长得多。即使我这样做manually而不是使用python内置方法。
我的问题是,有没有更好的方法呢?也许不首先作为数据框导入?并且仍然能够做到第 2 点到第 5 点?最后我需要转换为允许我执行循环的dict,将列名保留为键?谢谢。
附: dict应该是这个样子,格式类似于df,每一行基本上都是日期和对应的数据。
【问题讨论】:
-
dict应该是什么样子的?一个字典,键是列名,值是完整的列?还是一个字典列表,每行一个?
-
@MichaelButscher 帖子已更新,应该是这样的,谢谢。
-
熊猫数据框有“to_dict”方法。
-
@MichaelButscher 正如我所说,我尝试了内置的 to_dict() 和手动方式。手动比 to_dict 快,但仍然很慢。
-
你需要字典做什么?也许named tuples 可以替代(但我不知道它们是否真的更快)。
标签: python pandas numpy dataframe dictionary