我从这里的pandas 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
Run Code Online (Sandbox Code Playgroud) 在pandas库中很多次都有一个选项来更改对象,例如使用以下语句...
df.dropna(axis='index', how='all', inplace=True)
Run Code Online (Sandbox Code Playgroud)
我很好奇返回的内容以及inplace=True传递对象时的处理方式inplace=False.
正在修改的所有操作self时inplace=True?什么时候inplace=False立即创建一个新对象new_df = self,然后new_df返回?