在小資料框 df 中,我想創建一個新變數“y”。
'y' 應該是 'x' 變數 n 的剩余行的總和。所以對于第一行我只想使用 df.n.sum()。對于第二行,我想使用 df.n.iloc[1:].sum(),依此類推。
這可以矢量化嗎?
import pandas as pd
df=pd.DataFrame({'n':[4,5,6,7,8,9],
'x':[1,2,3,4,5,6]})
df['y'] = df.x df.n.sum() #?
我可以使用 for 回圈來做到這一點并獲得預期的輸出。
Expected output:
output = [df.n.iloc[i:].sum() for i in range(len(df))]
print(output)
Output:
[39, 35, 30, 24, 17, 9]
uj5u.com熱心網友回復:
你想要一個相反的cumsum:
df['out'] = df.loc[::-1, 'n'].cumsum()
輸出:
n x out
0 4 1 39
1 5 2 35
2 6 3 30
3 7 4 24
4 8 5 17
5 9 6 9
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/518007.html
標籤:Python熊猫麻木的
