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

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

將字典的值與數(shù)據(jù)幀的兩列的值進(jìn)行匹配,并用字典的鍵替換第三列的值

將字典的值與數(shù)據(jù)幀的兩列的值進(jìn)行匹配,并用字典的鍵替換第三列的值

呼啦一陣風(fēng) 2023-08-22 15:59:12
我有一個像這樣的熊貓數(shù)據(jù)框:Index | Line Item                   |        Insertion Order                    | Creative Type_________________________________________________________________________________________________1     | blbl 33 dEs '300x600' Q3    | hello 444                                 | UNKNOWN2     | QQQ4 Hello trueview Apple   | something 68793274                        | UNKNOWN3     |   A useless  string         | pre-roll Video <10 tttt 89 CASIO          | UNKNOWN4     | Something not in dict       | Neither here                              | UNKNOWN還有這樣的字典: dct = {'RISING STARS': ['300x600', 'Box 300x600', '300x250', 'Box 300x250', 'Classic Skin', 'Main Banner', 'Half Banner', 'Masthead', 'Push Bar', 'Strip', 'In Image', 'Mix formati display rising'],'VIDEO': ['trueview', 'Video Banner', 'Video in Picture', 'Videobox', 'Mid-roll Video', 'Pre-roll+Inread', 'Pre-roll Video <10', 'Pre-roll Video =10', 'Pre-roll Video =15', 'Pre-roll Video =20', 'Pre-roll Video =30' ,'Pre-roll Video >30','Inread / Intext / Outstream','Mix formati video','Post-roll Video','Inread XXX (Landscape/Vertical/Square)', 'Pre-roll Video Sponsored Session' ,'Pre-roll Video Viewmax' ,'Pre-roll Video Takeover']}我想替換我的數(shù)據(jù)幀的創(chuàng)意類型列中的值:如果該列的值Line Item或Insertion Order與字典的值匹配,則該列的相應(yīng)行Creative Type應(yīng)采用字典鍵的名稱。如果沒有匹配,則列廣告素材類型的相應(yīng)行應(yīng)接收值NaN。預(yù)期輸出是:Index | Line Item                   |        Insertion Order                    | Creative Type_________________________________________________________________________________________________1     | blbl 33 dEs '300x600' Q3    | hello 444                                 | RISING STARS2     | QQQ4 Hello trueview Apple   | something 68793274                        | VIDEO3     |   A useless  string         | pre-roll Video <10 tttt 89 CASIO          | VIDEO4     | Something not in dict       | Neither here                              | NaN最簡單的方法是什么?(如果可能的話,計(jì)算成本更低)
查看完整描述

1 回答

?
萬千封印

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

通過反轉(zhuǎn)給定的鍵值對來創(chuàng)建替換dict字典,即對于列表中的每個值將其映射到其相應(yīng)的鍵,然后使用Series.replace替換組合列中的字符串Line Item以及Insertion Order替換字典中的相應(yīng)值(當(dāng)存在時(shí))匹配,最后mask是無法替換的字符串:

r = {rf'(?i).*?\b{z}\b.*':x for x, y in dct.items() for z in y}

s = df['Line Item'].add(':' + df['Insertion Order'])

df['Creative Type'] = s.replace(r, regex=True).mask(lambda x: x.eq(s))

? ? ? ? ? ? ? ? ? ?Line Item? ? ? ? ? ? ? ? ? ?Insertion Order Creative Type

1? ?blbl 33 dEs '300x600' Q3? ? ? ? ? ? ? ? ? ? ? ? ?hello 444? RISING STARS

2? QQQ4 Hello trueview Apple? ? ? ? ? ? ? ? something 68793274? ? ? ? ?VIDEO

3? ? ? ? ? A useless? string? pre-roll Video <10 tttt 89 CASIO? ? ? ? ?VIDEO

4? ? ? Something not in dict? ? ? ? ? ? ? ? ? ? ? Neither here? ? ? ? ? ?NaN


查看完整回答
反對 回復(fù) 2023-08-22
  • 1 回答
  • 0 關(guān)注
  • 1638 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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