第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 Pandas groupby 時(shí),當(dāng)滿(mǎn)足列值時(shí)如何開(kāi)始下一組?

使用 Pandas groupby 時(shí),當(dāng)滿(mǎn)足列值時(shí)如何開(kāi)始下一組?

HUH函數(shù) 2023-09-19 17:17:26
我有一個(gè) DataFrame,其中有一列名為“Current_Position”...我想在“Current_Position”的值等于 0 時(shí)將 Dataframe 分成幾組...我希望 0 出現(xiàn)的行是當(dāng)前組的最后一行。下一行將開(kāi)始下一組。我該如何實(shí)現(xiàn)這個(gè)目標(biāo)?    Current_Position0   21   42   23   04   25   06   27   08   19   210  011  212  113  014  115  216  117  018  119  0預(yù)期輸出:    Current_Position  Group0                  2      01                  4      02                  2      03                  0      04                  2      15                  0      16                  2      27                  0      28                  1      39                  2      310                 0      311                 2      412                 1      413                 0      414                 1      515                 2      516                 1      517                 0      518                 1      619                 0      6
查看完整描述

1 回答

?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可以使用布爾索引來(lái)返回TrueorFalse一行是否等于零。要使其成為一組中的最后一個(gè),請(qǐng)使用.shift()移動(dòng)一行。然后,使用.cumsum(), 來(lái)獲取組:


df['Group'] = (df['Current_Position'].shift() == 0).cumsum()

df

Out[1]: 

    Current_Position  Group

0                  2      0

1                  4      0

2                  2      0

3                  0      0

4                  2      1

5                  0      1

6                  2      2

7                  0      2

8                  1      3

9                  2      3

10                 0      3

11                 2      4

12                 1      4

13                 0      4

14                 1      5

15                 2      5

16                 1      5

17                 0      5

18                 1      6

19                 0      6

  1. 我們?cè)?jīng).shift()將數(shù)據(jù)向下移動(dòng)一行。這允許具有值的行0成為組的最后一行而不是第一行。

  2. 我們?cè)?jīng)用來(lái)== 0轉(zhuǎn)換為返回orGroup的布爾數(shù)據(jù)類(lèi)型。布爾系列中的值本質(zhì)上相當(dāng)于or ,因此您可以在其上進(jìn)行其他數(shù)學(xué)運(yùn)算。例如,如果我們創(chuàng)建一個(gè)數(shù)據(jù)類(lèi)型為“df['Group'] = np.where(df['Current Position'] ==”的返回或STRINGS的列,則您將無(wú)法執(zhí)行這些數(shù)學(xué)運(yùn)算0、“真”、“假”)。TrueFalse10.cumsum()sumobject'True''False'

下面將邏輯分解為三個(gè)步驟,因此可以很容易地可視化:

df['Group1'] = df['Current_Position'].shift()

df['Group2'] = (df['Group1'] == 0)

df['Group3'] = df['Group2'] .cumsum()

df

Out[2]: 

    Current_Position  Group1  Group2  Group3

0                  2     NaN   False       0

1                  4     2.0   False       0

2                  2     4.0   False       0

3                  0     2.0   False       0

4                  2     0.0    True       1

5                  0     2.0   False       1

6                  2     0.0    True       2

7                  0     2.0   False       2

8                  1     0.0    True       3

9                  2     1.0   False       3

10                 0     2.0   False       3

11                 2     0.0    True       4

12                 1     2.0   False       4

13                 0     1.0   False       4

14                 1     0.0    True       5

15                 2     1.0   False       5

16                 1     2.0   False       5

17                 0     1.0   False       5

18                 1     0.0    True       6

19                 0     1.0   False       6


查看完整回答
反對(duì) 回復(fù) 2023-09-19
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)