Python 将行追加到数据帧
pandas是个新手,我创建了一个名为rollParametersDf的数据框:Python 将行追加到数据帧,python,python-3.x,pandas,Python,Python 3.x,Pandas,pandas是个新手,我创建了一个名为rollParametersDf的数据框: rollParametersDf = pd.DataFrame(columns=['insampleStart','insampleEnd','outsampleStart','outsampleEnd'], index=[]) 给出了4列标题。我想保留我正在进行的研究的参考日期。我想添加索引名为roll1、roll2..rolln的数据行(一次一行),该行是使用以下代码创建的: out
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})
我已尝试使用append,但无法获取要追加的单个行
我希望最终的数据帧看起来像:
insampleStart insampleEnd outsampleStart outsampleEnd
roll1 1 5 6 8
roll2 2 6 7 9
:
rolln
您可以指定要追加的键值对
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)
熊猫有一个将行附加到数据帧的示例。此追加操作不同于列表的追加操作,因为此追加操作生成新的数据帧。这意味着对于每个附加操作,您都在重建和重新索引数据帧,这是非常低效的。以下是一个示例解决方案:
# 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
非常感谢,但是当我添加代码时,我得到了一个异常:raise TypeError('如果ignore\u index=True,只能追加一个序列'TypeError:如果ignore\u index=True,或者如果序列有名称,只能追加一个序列。知道怎么了吗?谢谢