簡體   English   中英

Pandas dataframe select 列基於其他 Z6A8064B5DF479455500553 列中的值47DC

[英]Pandas dataframe select Columns based on other dataframe contains column value in it

我有兩個數據框。 這是dwpjp.head()

jp_number
0 25146315052147720191
1 57225427599900052634
2 86076681691411639833
3 50491824499499656478
4 95588382889227620465

ct_data.head()

imjp_number imct_id
0 23605308039805192764 x1E5e3ukRyEFRT6SUAF6lg|d543d3d064da465b8576d87
1 57225427599900052634 aa0d2dac654d4154bf7c09f73faeaf62|-vf6738ee3bed
2 53733358271401869469 6FfHZRoiWs2VO02Pruk07A|__g3d877adf9d154637be26
3 50491824499499656478 __gbe204670ca784a01b7207b42a7e5a5d3|54e2c39cd3
4 82143248133286027306 __g1114a30c6ea548a2a83d5a51718ff0fd|773840905c

我想要兩個新的數據幀cct_data和來自dct_datact_data 如果jp_number存在於ct_data dataframe 中,則應根據條件拆分dwbjp dataframe 然后放入cct_data ,否則放入dct_data

我對 dwpjp 中的常見jp_number進行了dwpjp

cct_data = ct_data[ct_data.isin(dwpjp).any(1).values]

而對於另一個我否定了如下條件:

dct_data = ct_data[~[ct_data.isin(dwpjp).any(1).values]]

但結果沒有得到如下。

cct_data

imjp_number imct_id
0 57225427599900052634 aa0d2dac654d4154bf7c09f73faeaf62|-vf6738ee3bed
1 50491824499499656478 __gbe204670ca784a01b7207b42a7e5a5d3|54e2c39cd3

dct_data

imjp_number imct_id
0 23605308039805192764 x1E5e3ukRyEFRT6SUAF6lg|d543d3d064da465b8576d87
1 53733358271401869469 6FfHZRoiWs2VO02Pruk07A|__g3d877adf9d154637be26
2 82143248133286027306 __g1114a30c6ea548a2a83d5a51718ff0fd|773840905c

注意: jpnumber=imjp_number

請注意以下事項:

  1. isin想要值,但它被賦予了整個 dataframe:將.isin(dwpjp)更改為.isin(dwpjp.jp_number)
  2. 在預先編輯的問題中, dwpjp的每一行實際上是一個包含 1 個值的列表,而不僅僅是 1 個值。 如果確實如此,那么.isin(dwpjp.jp_number)實際上需要另一個步驟:將值分解為.isin(dwpjp.jp_number.explode())
  3. 您的否定被錯誤地應用於列表:將~[ct_data...]更改為~ct_data...

有了這些修復,它就在我的身邊工作:

cct_data = ct_data[ct_data.isin(dwpjp.jp_number.explode()).any(1).values]
imjp_number imct_id
1 57225427599900052634 aa0d2dac654d4154bf7c09f73faeaf62|-vf6738ee3bed
3 50491824499499656478 __gbe204670ca784a01b7207b42a7e5a5d3|54e2c39cd3
dct_data = ct_data[~ct_data.isin(dwpjp.jp_number.explode()).any(1).values]
imjp_number imct_id
0 23605308039805192764 x1E5e3ukRyEFRT6SUAF6lg|d543d3d064da465b8576d87
2 53733358271401869469 6FfHZRoiWs2VO02Pruk07A|__g3d877adf9d154637be26
4 82143248133286027306 __g1114a30c6ea548a2a83d5a51718ff0fd|773840905c

修改你的公式如下

cct_data = ct_data[ct_data.imjp_number.isin(dwpjp.jp_number)]

dct_data = ct_data[~ct_data.imjp_number.isin(dwpjp.jp_number)]

暫無
暫無

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

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