我有两个数据框。这是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
。如果 ct_data
存在于 jp_number
数据帧中,则 dwbjp
数据帧应该被拆分,然后放入 cct_data
,否则放入 dct_data
。>
我为 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
。
答案 0 :(得分:3)
注意以下几点:
isin
想要值,但它获得了整个数据框:将 .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 |
答案 1 :(得分:0)
修改你的公式如下
cct_data = ct_data[ct_data.imjp_number.isin(dwpjp.jp_number)]
和
dct_data = ct_data[~ct_data.imjp_number.isin(dwpjp.jp_number)]