python-如何使用shift函数执行计算
下面是dfpython-如何使用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 = 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()顺便说一句,如果你有兴趣,我在新线程中添加了一个更复杂的版本