我有:
(使用数据帧,因为索引对齐至关重要。)
例如,假设SourceData中有1000个df,而indexlen是10,000。在10,000,我将分配从SourceData到NewData的所有列,向上移动索引(因为所有df共享相同的索引),直到源减少,此时我将开始从SourceData中的数据框中的所有列分配值[ 999]到NewData等。
我目前正在使用循环执行此操作:
for j in range(1, indexlen + 1):
NewData[j] = SourceData[source[j]].ix[j,:]
我想在不使用循环的情况下这样做,但我不知道如何广播这个。我确定我错过了一些明显的东西,但任何帮助都会受到赞赏。谢谢!
编辑: 我将源代码列为一个列表,因为我认为元素访问更有效。
在回答有关数据框的问题时,它们是标准价格数据:
>>>SourceData[1].head()
bpz1975 Open High Low Close Vol OI
1975-02-13 2.275 2.275 2.275 2.275 0 50
1975-02-14 2.275 2.275 2.275 2.275 0 50
1975-02-18 2.275 2.275 2.275 2.275 0 50
1975-02-19 2.290 2.290 2.290 2.290 0 50
1975-02-20 2.290 2.290 2.290 2.290 0 50
在这种情况下,阅读期货合约的所有月份,然后应用滚动逻辑来创建一个系列。
答案 0 :(得分:1)
创建DataFrame并填充它通常不是最快或最常用的方式。
在这种情况下,您似乎可以执行concat:
pd.concat(SourceData)
如果你需要在SourceData的DataFrames中包含索引信息,那么我会在执行concat之前执行。
目前还不清楚这究竟是什么,但听起来你建议根据源设置每个帧的索引...你可以创建一个传递SourceData的函数来改变每个的索引使用来自源代码的DataFrame(没有看到来源,不清楚到底是怎么回事)。