![](/img/trans.png)
[英]Assign value to a column based of other columns from the same pandas dataframe
[英]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_data
的ct_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
。
請注意以下事項:
isin
想要值,但它被賦予了整個 dataframe:將.isin(dwpjp)
更改為.isin(dwpjp.jp_number)
dwpjp
的每一行實際上是一個包含 1 個值的列表,而不僅僅是 1 個值。 如果確實如此,那么.isin(dwpjp.jp_number)
實際上需要另一個步驟:將值分解為.isin(dwpjp.jp_number.explode())
~[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.