![](/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.