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

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

Pandas 列出兩列之間的相似性

Pandas 列出兩列之間的相似性

肥皂起泡泡 2022-06-02 10:10:51
我有一個(gè)df:df = pd.DataFrame({'id': [123, 456, 789],                   'list_left': [['dog', 'cat'],['dog', 'mouse'], ['dog', 'elephant']],                   'list_right': [['cat', 'mouse', 'giraffe'], ['mouse', 'dog'], ['giraffe', 'gorilla']]})我想找到字符串列表之間的相似性。這應(yīng)該忽略順序或長(zhǎng)度(即['dog', 'mouse'],['mouse', 'dog']應(yīng)該導(dǎo)致 100% 的相似性)。這是我的嘗試(https://www.geeksforgeeks.org/python-percentage-similarity-of-lists/):df['result'] = len(set(df['list_left']) & set(df2['list_right'][1])) / float(len(set(df['list_left']) | set(df['list_right']))) * 100這會(huì)導(dǎo)致此錯(cuò)誤:TypeError                                 Traceback (most recent call last)<ipython-input-136-3b1e1ee16eed> in <module>()----> 1 df['new'] = len(set(df['list_left']) & set(df2['list_right'][1])) / float(len(set(df['list_left']) | set(df['list_right']))) * 100TypeError: unhashable type: 'list'與熊貓 df 中的列表列進(jìn)行比較的好方法是什么?對(duì)于不同長(zhǎng)度的字符串列表,列表之間的相似性是否具有邏輯意義?
查看完整描述

2 回答

?
呼如林

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

解決方案是使用apply:


df.apply(lambda x: len(set(x['list_left']) & set(x['list_right'])) / float(len(set(x['list_left']) | set(x['list_right']))) * 100,1)

輸出:


0     25.0

1    100.0

2      0.0

dtype: float64

方程的解釋?zhuān)?/p>


首先在等式中檢查公共元素:


df.apply(lambda x: len(set(x['list_left']) & set(x['list_right'])), 1)


輸出:


0    1

1    2

2    0

dtype: int64

接下來(lái),您檢查列表的不同元素并將其乘以:


df.apply(lambda x: float(len(set(x['list_left']) | set(x['list_right']))), 1)

輸出:


0    4

1    2

2    4

dtype: float64

相似度由(共同元素/不同元素)*100 定義。所以對(duì)于第一行它是1/4*100 = 0.25。


查看完整回答
反對(duì) 回復(fù) 2022-06-02
?
慕妹3146593

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

這里解決方案不使用apply


s = df.list_left + df.list_right

s1 = s.map(set)

(s.str.len() - s1.str.len()) / s1.str.len() * 100


Out[132]:

0     25.0

1    100.0

2      0.0

dtype: float64


查看完整回答
反對(duì) 回復(fù) 2022-06-02
  • 2 回答
  • 0 關(guān)注
  • 213 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(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)