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

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

關(guān)于pandas中條件計(jì)算的問(wèn)題

關(guān)于pandas中條件計(jì)算的問(wèn)題

我有這個(gè)公式,我想把它變成pandas計(jì)算,公式很簡(jiǎn)單: NEW = A(where v=1) + A(where v=3) + A(where v=5)我有一個(gè)這樣的數(shù)據(jù)框:Type subType value   A           NEW X    a       1      3         =3+9+9=21 X    a       3      9   X    a       5      9 X    b       1      4         =4+5+0=9 X    b       3      5  X    b       5      0 Y    a       1      1         =1+2+3=6 Y    a       3      2   Y    a       5      3 Y    b       1      4         =4+5+2=11 Y    b       3      5  Y    b       5      2兩個(gè)問(wèn)題:我知道我可以用指定的單元格寫下計(jì)算,但我希望代碼看起來(lái)更好,還有其他方法來(lái)獲取值嗎?因?yàn)?X 和 Y 只有兩個(gè)結(jié)果,如何將它們添加到原始數(shù)據(jù)框中以進(jìn)行進(jìn)一步計(jì)算?(我的想法是不要將它們添加到數(shù)據(jù)框中,而只是在將來(lái)計(jì)算需要時(shí)使用該值)對(duì)編碼很陌生,任何答案都將不勝感激!
查看完整描述

1 回答

?
胡說(shuō)叔叔

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

嘗試這個(gè):


>>> import pandas as pd

>>> df = pd.DataFrame({'Type':['X','X','X','Y','Y','Y'], 'value':[1,3,5,1,3,5], 'A':[3,9,4,0,2,2]})


>>> df

  Type  value  A

0    X      1  3

1    X      3  9

2    X      5  4

3    Y      1  0

4    Y      3  2

5    Y      5  2


>>> df.groupby('Type')['A'].sum()

Type

X    16

Y     4


>>> ur_dict = df.groupby('Type')['A'].sum().to_dict()

>>> df['NEW'] = df['Type'].map(ur_dict)

>>> df

  Type  value  A  NEW

0    X      1  3   16

1    X      3  9   16

2    X      5  4   16

3    Y      1  0    4

4    Y      3  2    4

5    Y      5  2    4

希望這可以幫助。


編輯以回答其他詢問(wèn):

您正在將元組鍵映射到一個(gè)系列,這會(huì)給您一個(gè)錯(cuò)誤。在進(jìn)行映射之前,您應(yīng)該將需要將字典映射到的列轉(zhuǎn)換為索引。


見(jiàn)下文:


>>> import pandas as pd

>>> df = pd.DataFrame({'Type':['X','X','X','X','X','X','Y','Y','Y','Y','Y','Y'], 'subType':['a','a','a','b','b','b','a','a','a','b','b','b'],'value':[1,3,5,1,3,5,1,3,5,1,3,5],'A':[3,9,9,4,5,0,1,2,3,4,5,2]})

>>> df

   Type subType  value  A

0     X       a      1  3

1     X       a      3  9

2     X       a      5  9

3     X       b      1  4

4     X       b      3  5

5     X       b      5  0

6     Y       a      1  1

7     Y       a      3  2

8     Y       a      5  3

9     Y       b      1  4

10    Y       b      3  5

11    Y       b      5  2


>>> df.groupby(['Type', 'subType'])['A'].sum()

Type  subType

X     a          21

      b           9

Y     a           6

      b          11

Name: A, dtype: int64

>>> ur_dict = df.groupby(['Type', 'subType'])['A'].sum().to_dict()

>>> ur_dict

{('X', 'a'): 21, ('X', 'b'): 9, ('Y', 'a'): 6, ('Y', 'b'): 11}


>>> df['NEW'] = df.set_index(['Type', 'subType']).index.map(ur_dict)

>>> df

   Type subType  value  A  NEW

0     X       a      1  3   21

1     X       a      3  9   21

2     X       a      5  9   21

3     X       b      1  4    9

4     X       b      3  5    9

5     X       b      5  0    9

6     Y       a      1  1    6

7     Y       a      3  2    6

8     Y       a      5  3    6

9     Y       b      1  4   11

10    Y       b      3  5   11

11    Y       b      5  2   11



查看完整回答
反對(duì) 回復(fù) 2022-07-05
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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