Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-如何使用shift函数执行计算_Python_Pandas_Dataframe_Shift - Fatal编程技术网

python-如何使用shift函数执行计算

python-如何使用shift函数执行计算,python,pandas,dataframe,shift,Python,Pandas,Dataframe,Shift,下面是df df = pd.DataFrame({ 'Sr. No': [1, 2, 3, 4, 5, 6], 'val1' : [2,3,2,4,1,2], }) 我希望Val2的第一行与val1的第一行相同 但是第2行和下面的公式如图所示。我想这应该是一个简单的转变,但只是没有得到我的头脑围绕这个问题 这是mul和cumsum: df["new"] = df["Sr. No&

下面是df

df = pd.DataFrame({
                   'Sr. No': [1, 2, 3, 4, 5, 6],
                    'val1' : [2,3,2,4,1,2],

})

我希望Val2的第一行与val1的第一行相同 但是第2行和下面的公式如图所示。我想这应该是一个简单的转变,但只是没有得到我的头脑围绕这个问题


这是
mul
cumsum

df["new"] = df["Sr. No"].mul(df["val1"]).cumsum()

print (df)

   Sr. No  val1  new
0       1     2    2
1       2     3    8
2       3     2   14
3       4     4   30
4       5     1   35
5       6     2   47

这是
mul
cumsum

df["new"] = df["Sr. No"].mul(df["val1"]).cumsum()

print (df)

   Sr. No  val1  new
0       1     2    2
1       2     3    8
2       3     2   14
3       4     4   30
4       5     1   35
5       6     2   47

这肯定很有帮助,但是如果我将公式更改为C2+B3^A3(同样,C3+B4^A4…所有行都向下),该怎么办?(如果您愿意,我可以使用更新的需求创建一个新线程),只要您将
mul
更改为首选方法(在本例中为
pow
),就不会有任何区别。您还可以执行
(df[“Sr.No”]**df[“val1”]).cumsum()
。完美!这非常有帮助。顺便说一句,只有编辑它应该是(df['val1']**df['Sr.No'])。cumsum()顺便说一句,如果你感兴趣,我在新的线程中添加了一个更复杂的版本,这肯定很有帮助,但是如果我将公式更改为C2+B3^A3(同样,C3+B4^A4…所有行都向下),会怎么样?(如果您愿意,我可以使用更新的需求创建一个新线程),只要您将
mul
更改为首选方法(在本例中为
pow
),就不会有任何区别。您还可以执行
(df[“Sr.No”]**df[“val1”]).cumsum()
。完美!这非常有帮助。顺便说一句,只有编辑它应该是(df['val1']**df['Sr.No'])。cumsum()顺便说一句,如果你有兴趣,我在新线程中添加了一个更复杂的版本