我有:熊猫分配没有循环?
- NewData,一个pd.DataFrame从
- 填充SourceData,dataframes保持列表的源数据和
- 源,一个数据帧保持索引值SourceData中的数据帧将被分配。
- indexlen,用于索引的在dataframes
长度的整数(使用dataframes因为它的关键索引对齐。)
例如,假设有1000名DF在SourceData,和indexlen是10,000。在10000处,我将分配从SourceData到NewData的所有列,向上移动索引(因为所有df共享相同的索引)直到源递减,此时我将开始分配源数据中所有列的值[ 999]到NewData等
我目前做这一个循环:
for j in range(1, indexlen + 1):
NewData[j] = SourceData[source[j]].ix[j,:]
我想做到这一点,而无需使用一个循环,但我不知道如何播出这一点。我确定我错过了一些明显的东西,但任何帮助都会很感激。谢谢!
编辑: 我做了一个列表,因为我认为这是更有效的元素访问。
在回答有关dataframes问题,他们是标准的价格数据:
>>>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
在这种情况下,在读一期货合约的所有月份,然后涂敷辊逻辑来创建一个系列。
你有什么样的数据框? – TomAugspurger
编辑了一个dfs头()的问题。而且,如果我不这样做,这些索引也可能会超过10,000。 (正如我想你可以告诉的那样,我的问题与这个具体问题一样多,关于良好的编程实践,所以欢迎任何批评。谢谢!) – user3241893
我也试过用NewData作为列表。更快,更快。如果没有更好的方法来解决这个问题,我想这个解决方案是可以接受的。 – user3241893