簡體   English   中英

如何搜索 dataframe 的特定行以在第二個 dataframe 中找到匹配項?

[英]how search on a specific rows of a dataframe to find a match in a second dataframe?

我有一個大數據集,我想以有效的方式完成以下任務。 假設我們有 2 個數據框。 對於df2中的每個元素,我只想在第一個數據集df1中搜索前 2 個字母相同的行,然后選擇具有最常見標記的單詞。 讓我們看一個例子:

df1: 

common work   co
summer hot    su
apple         ap
colorful fall  co
support it     su
could comp     co

df2:

condition work it  co
common mistakes    co
could comp work    co
summer             su

df2的第一行為例( condition work it )。 我想在df1中找到一行,它們具有相同的first_two並且具有最常見的標記。

condition work itfirst_twoco 所以我想在df1中搜索first_twoco 所以搜索是在: common workcolorful fallcould comp ,因為condition work it有 1 個 common token 和common work它被選中。

output:

df2:
name               first_two      match
condition work it  co              `common work`     
common mistakes    co              `common work`
could comp work    co              `could comp` 
summer             su              `summer hot'
appears            ap                  Nane

最后一行是 Nane,因為appearsapple之間沒有共同詞

您已經解釋了最有效的方法。

  1. 使用.str.[:2]提取系列的前 2 個字母,並將其分配給 dataframe 中的新列。
  2. 從 df2 中提取 2 個字母列的唯一值。
  3. 將 #2 的結果內連接到 df1。
  4. 對 #3 的結果按計數執行分組,並根據計數降序排序並刪除重復項,以獲得 2 個字母列的重復次數最多的項目。
  5. 將 #4 的連接結果左連接到 df2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM