【发布时间】:2018-11-23 05:43:14
【问题描述】:
我正在使用 pandas 处理数据,并且在使用 for 循环时遇到了一些问题。
基本上,我正在处理一些价格的时间序列,我必须计算每日价格的百分比变化;我只需要使用这些值,并且只需要最后 750 天。假设我有三个数据框,每个产品 A、B 和 C 一个,其中仅包含日期和每日价格。我写了这个:
import pandas as pd
products= [A, B, C]
for df in products:
df["change"] = df["price"].pct_change()
df.drop(index = [0], columns="price", inplace = True)
df = df.iloc[-751:-1]
现在,除了 for 循环中的最后一行之外,它可以正常工作。它不会覆盖 A、B 和 C 的原始数据帧,而是仅修改当前在标签 df 下的数据帧;这显示在变量列表中,其中 df 是唯一具有 750 行的数据框,所有其他数据框都有它们最初的数据减去丢弃的数据框。关于如何解决这个问题的任何想法?
在类似的说明中,我有一个关于内存使用的问题。对于这样的事情,假设我想运行回归或对数据进行一些分析,这会更好,将每个产品保存在单独的数据框中,还是将它们合并到一个大数据框中? panda 有回归风格的功能,还是使用其他库更好,比如 numpy?
提前非常感谢!
【问题讨论】:
标签: python pandas dataframe time-series