我有一個(gè)包含 3 列的數(shù)據(jù)框,其中第一列是帶有人名的分類變量,第二列是日期,第三列是問(wèn)題的累積出現(xiàn)次數(shù)。我想生成一個(gè)新列,其中包含每個(gè)人每天發(fā)生的事件。**Name Date Cumulative**John 01-01-2020 0John 02-01-2020 5John 03-01-2020 10John 04-01-2020 12Peter 01-01-2020 0Peter 02-01-2020 3Peter 03-01-2020 7Peter 04-01-2020 10James 01-01-2020 0James 02-01-2020 10James 03-01-2020 14James 04-01-2020 18Kirk 01-01-2020 0Kirk 02-01-2020 12Kirk 03-01-2020 12Kirk 04-01-2020 15Rob 01-01-2020 0Rob 02-01-2020 11Rob 03-01-2020 18Rob 04-01-2020 23如果我使用 df['By Day'] = df.Cumulative.diff() 結(jié)果很好但是在每個(gè)人第一次出現(xiàn)時(shí)它會(huì)給我負(fù)數(shù)而不是 0(因?yàn)樗鼘⑶耙粋€(gè)數(shù)字減去 0 ). 它會(huì)給我如下:Name Date Cumulative By DayJohn 01-01-2020 0 0John 01-02-2020 0 0John 03-01-2020 5 5John 04-01-2020 10 5John 05-01-2020 12 2Peter 01-01-2020 0 -12Peter 02-01-2020 0 0Peter 03-01-2020 3 3Peter 04-01-2020 7 4Peter 04-01-2020 10 3James 01-01-2020 0 -10James 02-01-2020 0 0James 03-01-2020 10 10James 04-01-2020 14 4James 04-01-2020 18 4 Kirk 01-01-2020 0 -18Kirk 02-01-2020 0 0Kirk 03-01-2020 12 12Kirk 04-01-2020 15 3Kirk 04-01-2020 19 4Rob 01-01-2020 5 -14Rob 02-01-2020 11 6Rob 03-01-2020 18 7Rob 04-01-2020 23 5Rob 04-01-2020 27 4我想對(duì)每個(gè)名字進(jìn)行區(qū)分,以便每次不同的人都從 0 開始。我考慮過(guò)按名稱使用迭代,但它會(huì)為每個(gè)條目執(zhí)行 5 次。例如,對(duì)于 Rob,我想要 0 6 7 5 4 而不是從 -14 開始(Kirk 的前 19 -5 來(lái)自 Rob 的第一個(gè)條目)
如何從 pandas 數(shù)據(jù)框中的當(dāng)前行中減去前一行以創(chuàng)建一個(gè)新列以每個(gè)名稱重新啟動(dòng)進(jìn)程?
慕蓋茨4494581
2023-03-01 16:35:41