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

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

Python 3 中的條件查找

Python 3 中的條件查找

慕妹3146593 2021-09-25 09:47:33
請幫忙。有數(shù)據(jù)框:ArtNo   Description     PriceAAA     Lore Ipsum      10BBB     Lore Ipsum      9CCC     Lore Ipsum      8DDD     AAA Lore Ipsum  0EEE     BBB Lore Ipsum  0FFF     CCC Lore Ipsum  0GGG     ZZZ Lore Ipsum  0HHH     AAA Lore Ipsum  0我需要在 ArtNo 列中的文章的描述列中添加一個(gè)乘以價(jià)格而不是零的列。如果沒有匹配(ArtNo 列和 Description 中的第一個(gè)單詞之間的空間),則將同一行中 Price 列中的相同數(shù)字應(yīng)用于“乘法列”:ArtNo   Description     Price   Price (multiplied) ???AAA     Lore Ipsum      10      10  BBB     Lore Ipsum      9       9   CCC     Lore Ipsum      8       8   DDD     AAA Lore Ipsum  0       10  EEE     BBB Lore Ipsum  0       9   FFF     CCC Lore Ipsum  0       8GGG     ZZZ Lore Ipsum  0       0HHH     AAA Lore Ipsum  0       10在excel中它是這樣工作的:IF (Price != 0; Price multiplied = Price;    IF(ISERROR(VLOOKUP(MID(Description;1;FIND(        ' ';Description;1));TABLE;3;0));Price multiplied = Price;    ESLE: Price multiplied = VLOOKUP(MID(Description;1;FIND(        ' ';Description;1));TABLE;3;0)    ))提前致謝。
查看完整描述

2 回答

?
桃花長相依

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

您可以構(gòu)建一個(gè)系列映射并將其應(yīng)用于Description.


zeros = df['Price'].eq(0)

art_price_map = df[~zeros].set_index('ArtNo')['Price']

first_word = df['Description'].str.split(n=1).str[0]


df['Price (multiplied)'] = df['Price'].mask(zeros, first_word.map(art_price_map))\

                                      .fillna(0).astype(int)


print(df)


  ArtNo     Description  Price  Price (multiplied)

0   AAA      Lore Ipsum     10                  10

1   BBB      Lore Ipsum      9                   9

2   CCC      Lore Ipsum      8                   8

3   DDD  AAA Lore Ipsum      0                  10

4   EEE  BBB Lore Ipsum      0                   9

5   FFF  CCC Lore Ipsum      0                   8

6   GGG  ZZZ Lore Ipsum      0                   0


查看完整回答
反對 回復(fù) 2021-09-25
?
慕哥9229398

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

你可以這樣做pd.merge:


 #create new dataframe with ArtNo created from part of the Description

 df2 = df.copy()[['Description']]

 df2.columns = ['ArtNo']

 df2['ArtNo'] = df2['ArtNo'].str.split(n=1).str[0]


 #merge price from the first dataframe

 df2 = pd.merge(df2, df[['ArtNo', 'Price']], how='left', on='ArtNo')


 #create a new column 'Price (multiplied)' and fill NANs from original 'Price' column

 df['Price (multiplied)'] = df2['Price'].values

 df['Price (multiplied)'] = df['Price (multiplied)'].fillna(df['Price']).astype(int)


查看完整回答
反對 回復(fù) 2021-09-25
  • 2 回答
  • 0 關(guān)注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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