我从这里的熊猫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
发布于 2017-01-08 12:18:19
如果您只是想创建一个空的数据框,并在以后用一些传入的数据框填充它,请尝试以下操作:
newDF = pd.DataFrame() #creates a new dataframe that's empty
newDF = newDF.append(oldDF, ignore_index = True) # ignoring index is optional
# try printing some data from newDF
print newDF.head() #again optional
在本例中,我使用this pandas doc创建一个新的数据帧,然后使用append将来自oldDF的数据写入newDF。
如果我必须不断地将多个旧newDF中的新数据附加到这个pandas.DataFrame.append()中,我只需使用for循环来遍历data
发布于 2021-10-19 16:59:52
简单地说:
import numpy as np
import pandas as pd
df=pd.DataFrame(np.zeros([rows,columns])
那就填满它。
发布于 2018-08-29 19:06:29
假设数据帧有19行
index=range(0,19)
index
columns=['A']
test = pd.DataFrame(index=index, columns=columns)
保持A列为常量
test['A']=10
保持列b作为循环给定的变量
for x in range(0,19):
test.loc[[x], 'b'] = pd.Series([x], index = [x])
您可以将pd.Series([x], index = [x])
中的第一个x替换为任何值
https://stackoverflow.com/questions/13784192
复制相似问题