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

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

列表理解以獲取包含來自 2 個獨立數據幀的匹配值的行

列表理解以獲取包含來自 2 個獨立數據幀的匹配值的行

藍山帝景 2023-12-05 15:48:13
所以我試圖在一個列上匹配兩個非常不同的數據幀,每個數據幀都包含字符串格式的數字。我需要一個簡潔、非??焖俚慕鉀Q方案,所以我嘗試使用字符串理解并在幾天前成功,然后丟失了我的工作,我試圖重新創建它。df1=pd.DataFrame({'col':['hey','hi','how ya durn']})df2=pd.DataFrame({'col':['hey','hi','hello','what']})df3=df2[[x for x in df2.col for y in df1.col if x in y]]df3.head()所以我前幾天用 2 個數據幀完成了這項工作,都是 20-30 列,約 100k 行,除了每列 1 列之外的不同列數據,我試圖匹配它。我要么得到 ValueError:Item wrong length # instead of #.要么花費大量時間,因為我使用的系統很慢。我知道我需要使用列表理解或更快的東西,而且我知道.apply()需要太長時間。我的兩個匹配列都包含字符串格式的 10-15 長度數字。幾天前,當我使用類似的列表組合單行代碼讓它工作時,它花了幾秒鐘的時間才能完成,并且非常完美,現在我丟失了它并且無法重新創建它,哈哈。任何幫助是極大的贊賞。any()(附注:我可能在列表比較中使用了一個語句,并且我 95% 確定我使用了if x in y。)
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊


您可以使用以下命令在兩列中查找字符串


df2[df2.col.isin(df1.col)]

出去:


   col

0  hey

1   hi

一個具有理解性的解決方案是


df2[df2.col.isin([x for x in df2.col for y in df1.col if x in y])]

但是對于較大的列來說這會變慢


查看完整回答
反對 回復 2023-12-05
  • 1 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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