第二次运行函数

时间:2017-11-15 13:37:17

标签: python function pandas series

我有一个声明变量的脚本并将其设置为pandas Series对象。

Pi = pd.Series(0, index=[some_index])

然后for循环为该pandas Series对象添加更多值:

for i in range(0, 10):
        Pi = Pi.add(some_value[i], fill_value=0)

我想编码的东西是一个函数,我可以把它放在这个for循环中,比如:

for i in range(0, 10):
        Pi = my_function()

但问题是my_function()应该在第一次运行时声明一个pandas系列对象(返回pd.Series(0)),并且在第一次运行之后,它应该以某种方式更改并添加新值(返回pd.add(some_value)而不是再次定义pd.Series(0)。

1 个答案:

答案 0 :(得分:0)

你不应该这样做,因为它没有任何好处而且令人困惑。

def my_function(Pi, i):
    if i == 0: # First iteration, Create the Series
        Pi = pd.Series(0, index=[some_index])

    Pi = Pi.add(some_value[i], fill_value=0)
    return Pi

Pi=None
for i in range(0, 10):
    Pi = my_function(Pi, i)

也许一堂课就是你想要的:

class PiSeries:

    def __init__(self, some_index):
        self.Pi = pd.Series(0, index=[some_index])

    def my_function(self, i):
        self.Pi = self.Pi.add(some_value[i], fill_value=0)

    def create_series(self, start, end):
        for i in range(start, end):
            self.my_function(i)

        return self.Pi

PiSeries(index=some_index).create_series(start=0, end=10)