我从这里的熊猫 DataFrame 文档开始: http ://pandas.pydata.org/pandas-docs/stable/dsintro.html
我想用时间序列计算中的值迭代地填充 DataFrame。所以基本上,我想用列 A、B 和时间戳行来初始化 DataFrame,全为 0 或全为 NaN。
然后我会添加初始值并检查这些数据,从前一行计算新行,比如 row[A][t] = row[A][t-1]+1
左右。
我目前正在使用下面的代码,但我觉得它有点难看,必须有一种方法可以直接使用 DataFrame 来做到这一点,或者一般来说只是一种更好的方法。注意:我使用的是 Python 2.7。
import datetime as dt
import pandas as pd
import scipy as s
if __name__ == '__main__':
base = dt.datetime.today().date()
dates = [ base - dt.timedelta(days=x) for x in range(0,10) ]
dates.sort()
valdict = {}
symbols = ['A','B', 'C']
for symb in symbols:
valdict[symb] = pd.Series( s.zeros( len(dates)), dates )
for thedate in dates:
if thedate > dates[0]:
for symb in valdict:
valdict[symb][thedate] = 1+valdict[symb][thedate - dt.timedelta(days=1)]
print valdict
原文由 Matthias Kauer 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里有几个建议:
使用
date_range
作为索引:注意:我们可以创建一个空的 DataFrame(带有
NaN
s),只需编写:要对数据进行这些类型的计算,请使用 numpy 数组:
因此我们可以创建 DataFrame: