我有一個如下所示的熊貓資料框
import pandas as pd
data = [[5, 10], [4, 20], [15, 30], [20, 15], [12, 14], [5, 5]]
df = pd.DataFrame(data, columns=['x', 'y'])
我試圖獲得這個運算式的價值。

我沒有想到如何將列中的第一個值與運算式中的另一列中的第二個值相乘。
uj5u.com熱心網友回復:
嘗試pd.DataFrame.shift()但我認為您需要根據您發布的求和符號將 -1 輸入到班次中。i 1 意味著使用下一個 x 或 y,因此 shift 需要使用負整數將 1 個數字向前移動。移位中的正整數向后移動。
你能確認320是正確的答案嗎?
0.5 * ((df.x * df.y.shift(-1)) - (df.x.shift(-1) df.y)).sum()
>>>320
uj5u.com熱心網友回復:
您可以使用pandas.DataFrame.shift().
>>> (df['x']*df['y'].shift(1) - df['x'].shift(1)*df['y']).sum()*0.5
202.5
# Explanation
>>> df['x']*df['y'].shift(1) - df['x'].shift(1)*df['y']
0 NaN
1 -60.0
2 180.0
3 375.0
4 -100.0
5 10.0
dtype: float64
uj5u.com熱心網友回復:
我認為下面的代碼在 expresion_end 中具有正確的值
import pandas as pd
data = [[5, 10], [4, 20], [15, 30], [20, 15], [12, 14], [5, 5]]
df = pd.DataFrame(data, columns=['x', 'y'])
df["x 1"]=df["x"].shift(periods=-1)
df["y 1"]=df["y"].shift(periods=-1)
df["exp"]=df["x"]*df["y 1"]-df["x 1"]*df["y"]
expresion_end=0.5*df["exp"].sum()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/531551.html
標籤:Python熊猫
