簡體   English   中英

創建一個新的 dataframe 列作為另一列的所有行的乘積

[英]Create a new dataframe column as a product of all the rows of another column

我有以下 dataframe:

   a
0  1
1  2
2  3
3  4

我正在尋找創建一個新列'b',例如'b'的第i行的值被定義為'a'的所有先前行的乘積,減1:

row_b(i) = row_a(i)*row_a(i-1)*row_a(i-2)*...*row_a(0) - 1

因此:

  • 'b' 的第一行是 1 -1 =0
  • 'b' 的第二行是 2 * 1 -1 = 1
  • 'b' 的第三行是 3 * 2 * 1 -1 =5
  • 等等

這樣最終的 dataframe 看起來像:

   a   b
0  1   0
1  2   1
2  3   5
3  4  23

我正在尋找最 Pythonic 且計算量較少的方式來執行此操作。

謝謝你的幫助Z

正如@Quang Hong所提到的,答案很簡單

df['a'].cumprod()-1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM