亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 pandas 數據框中 - 返回滿足條件的累積和的最后一個值

在 pandas 數據框中 - 返回滿足條件的累積和的最后一個值

慕容森 2023-07-27 09:50:18
index [0, 1, 2, 3, 4, 5]part_1 [4, 5, 6, 4, 8, 4]part_2 [11, 12, 10, 12, 14, 13]new [6, 4, 8, 8, na, na]我是 python 和 pandas 的初學者,尋求支持。在一個簡單的數據框中,我想創建一個新列,為我提供滿足條件的累積總和的最后一行df.part_1.cumsum() > df.part_2例如,對于索引 0 處的新列,我將得到值 6,即 (4+5+6) > 11。謝謝!
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

IIUC 這里有一個NumPy基于方法。這個想法是構建一個上三角矩陣,每行中都有輸入數組的移位版本。通過獲取這些的累積和,并與數據幀的第二列進行比較,我們可以使用argmax第一個索引找到累積序列中的值大于相應索引中的第三數據幀列:


a = df.to_numpy()

cs = np.triu(a[:,1]).cumsum(1)

ix = (cs >= a[:,2,None]).argmax(1)

# array([2, 3, 3, 4, 6, 7, 7, 0], dtype=int64)

df['first_ix'] = a[ix,1,None]

print(df)

   index  part_1  part_2  first_ix

0      0       4      11         6

1      1       5      12         4

2      2       6      10         4

3      3       4      12         8

4      4       8      14         6

5      5       4      13         8

6      6       6      11         8

7      7       8      10         4


查看完整回答
反對 回復 2023-07-27
  • 1 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號