编辑:
我正在尝试模拟在线决策过程。在每次迭代中,我想从已知数据帧中读取一个新行并根据它做出决定。另外,我想保存我使用的数据帧的最后n行。不幸的是,即使遍历行也很慢。
我怎样才能更好地做到这一点?
import pandas as pd
import numpy as np
import time
t0 = time.time()
s1 = np.random.randn(2000000)
s2 = np.random.randn(2000000)
time_series = pd.DataFrame({'s1': s1, 's2': s2})
n = time_series.shape[0]
for t in range(1, n - 1):
curr_data = time_series.iloc[t]
print time.time() - t0
OLD VERSION:
我有一个循环,在每次迭代中我都需要删除数据帧的第一行,并在另一行追加另一行。什么是最快的方法?
答案 0 :(得分:1)
如果确实需要,可以使用:
for i in range(3):
#remove first row
df = df.iloc[1:]
#e.g. append second row
row = df.iloc[1]
#append new row
df.loc[len(df.index)] = row
但如果检查this post这是最慢的解决方案:
6)更新空框架(例如一次使用loc一行)
所以我猜这里应该是更好/更快的解决方案。第一步是尽可能避免循环。