假设我有从2000年1月1日到2011年1月1日的时间序列,并且对于每个日期,我有一些浮动值...这是在熊猫数据帧中。
我想进行一些计算。假设N是数据点的数量,i是当前数据点。伪代码:
for i in n:
some_calc(V0:Vi) + some_calc(Vi:Vn)
我可以轻松实现此计算,但我认为对于大型集合而言,我会发现性能问题。我认为部分原因在于,由于数据容器是一个Dataframe,切片会创建新系列,而在some_calc中,会发生更多切片。
什么是做某事的有效方式?我可以使用numpy避免循环吗?
答案 0 :(得分:0)
您可以使用以下代码来提高代码效果:
result = []
for item in item_list:
new_item = do_something_with(item)
result.append(new_item)
见下面的例子:
# finding the max prior to the current item
a = [3, 4, 6, 2, 1, 9, 0, 7, 5, 8]
results = []
current_max = 0
for i in a:
current_max = max(i, current_max)
results.append(current_max)
# results = [3, 4, 6, 6, 6, 9, 9, 9, 9, 9]