2016-03-28 115 views
1

相当新的熊猫和我已经创建称为rollParametersDf的数据帧:追加行到数据帧

rollParametersDf = pd.DataFrame(columns=['insampleStart','insampleEnd','outsampleStart','outsampleEnd'], index=[]) 

与给出的4个标题。我想持有我正在进行的一项研究的参考日期。我想与索引名ROLL1添加数据的行(一次一个),roll2..rolln正在使用下面的代码创建:

  outsampleEnd = customCalender.iloc[[totalDaysAvailable]] 
      outsampleStart = customCalender.iloc[[totalDaysAvailable-outsampleLength+1]] 
      insampleEnd = customCalender.iloc[[totalDaysAvailable-outsampleLength]] 
      insampleStart = customCalender.iloc[[totalDaysAvailable-outsampleLength-insampleLength+1]] 

      print('roll',rollCount,'\t',outsampleEnd,'\t',outsampleStart,'\t',insampleEnd,'\t',insampleStart,'\t') 

      rollParametersDf.append({insampleStart,insampleEnd,outsampleStart,outsampleEnd}) 

我一直在使用追加尝试,但不能让一个单独的行附加。

我想最后的数据帧的样子:

 insampleStart insampleEnd outsampleStart outsampleEnd 
roll1  1    5   6    8  
roll2  2    6   7    9 
: 
rolln 

任何帮助非常赞赏。

感谢

回答

1

你给键值对追加

df = pd.DataFrame({'insampleStart':[], 'insampleEnd':[], 'outsampleStart':[], 'outsampleEnd':[]}) 
df = df.append({'insampleStart':[1,2], 'insampleEnd':[5,6], 'outsampleStart':[6,7], 'outsampleEnd':[8,9]}, ignore_index=True) 
+0

非常感谢,但是当我添加的代码我得到一个异常:提高类型错误( 类型错误“如果ignore_index = TRUE,只能追加一个系列”:只能追加一个系列,如果ignore_index = True或系列是否有名字。有什么想法是什么错误?谢谢 – Stacey

+0

编辑我的答案,现在应该工作 – kilojoules

0

documentation有附加行的数据帧的例子的大熊猫。此附加操作与列表中的操作不同,因为此附加操作会生成新的DataFrame。这意味着对于每个附加操作,您正在重新构建并重建数据框,这非常低效。下面是一个例子的解决方案:

# create empty dataframe 
columns=['insampleStart','insampleEnd','outsampleStart','outsampleEnd'] 
rollParametersDf = pd.DataFrame(columns=columns) 

# loop through 5 rows and append them to the dataframe 
for i in range(5): 
    # create some artificial data 
    data = np.random.normal(size=(1, len(columns))) 
    # append creates a new dataframe which makes this operation inefficient 
    # ignore_index causes reindexing on each call. 
    rollParametersDf = rollParametersDf.append(pd.DataFrame(data, columns=columns), 
               ignore_index=True) 

print rollParametersDf 

    insampleStart insampleEnd outsampleStart outsampleEnd 
0  2.297031  1.792745  0.436704  0.706682 
1  0.984812 -0.417183  -1.828572  -0.034844 
2  0.239083 -1.305873  0.092712  0.695459 
3  -0.511505 -0.835284  -0.823365  -0.182080 
4  0.609052 -1.916952  -0.907588  0.898772