亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

將 DF 列中的部分值匹配到指定列表并檢索頻率

將 DF 列中的部分值匹配到指定列表并檢索頻率

DIEA 2021-11-30 16:25:14
我有一個如下形式的數據框:              Room Location0                 jc room g1               merten 30052               merten 25003               merten 30054               merten 30055               merten 30056                 jc bistro我目前正在嘗試解析此特定列以提取此指定列表中的所有值:room_list = ['jc','sub', 'hub', 'merten', 'rsch', 'corner pocket', 'mix', 'fenwick']因此(而且效率很低)我使用:room_list = (MASTER_TABLE['Room Location'].astype(str).str.lower()).tolist()room_string = ''.join(room_list)room_freq = re.findall(r'|'.join(room_list), room_string)重申一下,經過一些預處理后,我將列轉換為列表,然后是字符串,然后執行以下操作:freqs = {}for item in room_freq:    freqs[item] = freqs.get(item, 0) + 1num_sort_freqs = dict(sorted(freqs.items(), key=lambda x: x[1], reverse = True))print('Sorted name occurences: ','\n')print('===================================================================\n')for k, v in num_sort_freqs.items():    print(k, v)然而,這非常有效,當我返回“排序”字典時,我得到了這個:merten 1204 39jc cinema 35merten 2500 31jc gold rm 31the hub corner pocket 30令人沮喪的是,它完全按照它所說的去做,我的問題如下:我如何解析列(或列表 -> 我應該說的字符串)并將列的元素與指定列表的元素部分匹配,即使該元素附加了過多的“噪音”,或者例如:jc room g = jcmerten 3005 = merten理想情況下,返回 dict 應該只有 5 個要返回的鍵,room_list以及它們的后續頻率。我也嘗試去除所有數字,但由于某些元素具有過多的弦噪音,因此問題仍然存在。我已經搜索了以前的相關問題,但沒有找到任何特定于我的問題的內容,但是如果您發現了(相關的)騙子,請告訴我,這樣我就不會浪費您的時間。謝謝!
查看完整描述

1 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

我的解決方案在這里:


room_list = ['jc','sub', 'hub', 'merten', 'rsch', 'corner pocket', 'mix', 'fenwick']

for tag in room_list:

    result = df['Room Location'].str.lower().str.contains(tag).sum()

    print(f'{tag} : {result}')

輸出:


jc : 2            

sub : 0          

hub : 0          

merten : 5       

rsch : 0         

corner pocket : 0

mix : 0          

fenwick : 0 

如果你想要一個 dict 作為輸出,就這樣做:


result= {}

for tag in room_list:

    result[tag] = df['Room Location'].str.lower().str.contains(tag).sum()

或克里斯的解決方案:


result = {tag : df['Room Location'].str.lower().str.contains(tag).sum() for tag in room_list}



查看完整回答
反對 回復 2021-11-30
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號