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

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

將所有值 str 列數(shù)據(jù)幀與其他數(shù)據(jù)幀 str 列匹配

將所有值 str 列數(shù)據(jù)幀與其他數(shù)據(jù)幀 str 列匹配

搖曳的薔薇 2022-08-25 15:05:51
我有兩個熊貓數(shù)據(jù)幀:數(shù)據(jù)幀 1:ITEM ID TEXT1       some random words2       another word3       blah 4       random words 數(shù)據(jù)幀 2:INDEX INFO1     random3     blah 我想將 INFO 列(數(shù)據(jù)幀 2)中的值與數(shù)據(jù)幀 1 的 TEXT 列進(jìn)行匹配。如果有匹配項,我希望看到一個帶有“1”的新列。像這樣:ITEM ID TEXT                  MATCH1       some random words       12       another word  3       blah                    14       random words            1我能夠通過以下代碼行為每個 INFO 列的值創(chuàng)建一個匹配項:dataframe1.loc[dataframe1['TEXT'].str.contains('blah'), 'MATCH'] = '1'但是,實際上,我的真實數(shù)據(jù)幀 2 有 5000 行。所以我不能手動復(fù)制粘貼所有這些。但基本上我正在尋找這樣的東西:dataframe1.loc[dataframe1['TEXT'].str.contains('Dataframe2[INFO]'), 'MATCH'] = '1'我希望有人可以幫忙,謝謝!
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗 獲得超13個贊

試一試:


法典:


dfA['MATCH']    = dfA['TEXT'].apply(lambda x: min(len([ y for y in dfB['INFO'] if y in x]), 1))

輸出:


   ITEM ID               TEXT  MATCH

0        1  some random words      1

1        2       another word      0

2        3               blah      1

3        4       random words      1

如果不是比賽,那就是0,但這很容易被淘汰。


可能有一個更好/更快的本機(jī)解決方案,但它通過迭代“TEXT”列和“INFO”來完成工作。根據(jù)您的使用案例,它可能足夠快。


看起來代替也會一樣好用。同樣,根據(jù)您的使用案例,可能會在時間上有所不同。.map().apply()


查看完整回答
反對 回復(fù) 2022-08-25
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗 獲得超2個贊

更新以考慮字符串包含而不是完全匹配...


您可以從第一個數(shù)據(jù)幀中的列中獲取唯一值,將其轉(zhuǎn)換為 list,然后在第二個數(shù)據(jù)幀上使用 eval 方法,并在該列表中使用 Column.str.contains。


unique = df1['TEXT'].unique().tolist()

df2.eval("Match=Text.str.contains('|'.join(@unique))")


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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