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

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

Python / Pandas Dict查找最接近的匹配項(xiàng),然后結(jié)束循環(huán)

Python / Pandas Dict查找最接近的匹配項(xiàng),然后結(jié)束循環(huán)

猛跑小豬 2021-04-01 14:08:03
嘗試將此邏輯應(yīng)用于以下DF我有一個(gè)df如下import pandas as pdimport numpy as pddf = pd.read_csv('subjects.csv') SubjectsMediainformation MediaDigital Media然后,我嘗試將我的主題映射到字典,以輸出經(jīng)過驗(yàn)證的corrected_subjectd = {'Media' : 'Film & Media','Information' : 'ICT','Digital' : 'ICT'}df['subject_corrected'] = df['subjects'](lambda x: ', '.join([d[i] for i in d if i in x]))Subjects           subject_correctedMedia              Film & Mediainformation Media  Film & Media, ICTDigital Media      Film & Media, ICT現(xiàn)在,通過我的DF使用此循環(huán),在我希望它找到最接近的匹配并退出循環(huán)的地方給了我所有匹配項(xiàng)。因此,數(shù)字媒體將是ICT,而不是媒體我已經(jīng)嘗試了以下方法,但是對我來說并不是一個(gè)好兆頭!為了for k,v in d.items():    if k in df['subjects']:        df['subject_corrected'] = d.values():Subjects           subject_correctedMedia              Film & Mediainformation Media  ICTDigital Media      ICT我看過很多類似的文章,但無法解決。我會以錯(cuò)誤的方式解決這個(gè)問題,是否應(yīng)該將其傳遞到兩個(gè)列表/數(shù)組中并使用if語句遍歷所有匹配項(xiàng)?dict與2D陣列有何不同?
查看完整描述

1 回答

?
郎朗坤

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

您可以使用:


df['Subjects'].apply(lambda x: ', '.join([d[i] for i in d if i in x])).str.split(', ').str[-1]

輸出:


            Subjects      subject_corrected

0              Media      Film & Media

1  Information Media               ICT

2      Digital Media               ICT

您也可以通過下面的代碼行直接獲得輸出,只需從列表中獲取最后一個(gè)元素。


df['Subjects'].apply(lambda x: [d[i] for i in d if i in x][-1])


查看完整回答
反對 回復(fù) 2021-04-27
  • 1 回答
  • 0 關(guān)注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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