我有一个声明变量的脚本并将其设置为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)。
泰
答案 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)