Python 将规则应用于熊猫中的列

Python 将规则应用于熊猫中的列,python,pandas,Python,Pandas,我有个简短的问题。有没有更快的方法来替换“for”循环?我想应用“if”语句来扩展数据。像下面这样的东西。“for”循环太慢了。我需要填充其他更复杂的逻辑,以便欣赏任何系统的方法来解决它 import pandas as pd import numpy as np s = pd.DataFrame(index=[np.arange(0,201,1)], columns=['myval']) for i in s.index: if 0<=i<=50: s.m

我有个简短的问题。有没有更快的方法来替换“for”循环?我想应用“if”语句来扩展数据。像下面这样的东西。“for”循环太慢了。我需要填充其他更复杂的逻辑,以便欣赏任何系统的方法来解决它

import pandas as pd
import numpy as np

s = pd.DataFrame(index=[np.arange(0,201,1)], columns=['myval'])
for i in s.index:
    if 0<=i<=50:
        s.myval[i] = s.myval[i-1] * 1.05 if i > 0 else 3
    else:
        s.myval[i] = (10 - s.myval[i-1]) * 0.8 + 10 * 0.2
将熊猫作为pd导入
将numpy作为np导入
s=pd.DataFrame(索引=[np.arange(0201,1)],列=['myval'])
对于s.index中的i:

如果0您可以应用elementwise python函数-内置特性


这是文档

虽然我对pandas@Timescape了解不多,但我不确定是否有一种基于上一个值的方法-您是否尝试过您的示例?“它不起作用了。”耶斯雷尔-抱歉。现在应该可以工作了。Excel可以比python快很多,因为公式更像内置的。我相信有一种方法可以应用矢量化计算,但不知道如何应用。似乎元素函数不允许就地更新,这意味着我无法使用I计算I+1