J'ai deux dataframes et j'ai besoin de séparer les lignes où une valeur de pmdf correspond à l'un des codes de jcrdf.All_codes .Python/Pandas: combiner les colonnes de 2 données basées sur la correspondance des valeurs entre les colonnes, mais ne peut pas utiliser la fusion
Si pmdf.code est dans jcrdf.All_codes, j'ai besoin d'une base de données avec toutes les valeurs de jcrdf AND pmdf.count.
Dataframes:
pmdf = pd.DataFrame(
{
'code': ['0567-8315','0007-4977','0096-0225','1365-2133','8675-309J'],
'count':['6','7','10','2','1']
}
)
jcrdf = pd.DataFrame(
{
'jobtitle': ['manager','technician','noob','retiree'],
'location': ['loc1','loc3','loc4','loc2'],
'jcode' : ['4444-4444','3333-3333','2222-2222','1111-1111'],
'All_codes': ['0096-0225,0096-0225','1820-7448,0567-8315,0567-8315','0007-4977,0007-4977','0007-0963,0007-0963,0366-077X,1365-2133']
})
j'ai une recherche qui permet une diff:
jcrdf_lookup = pd.DataFrame(jcrdf['All_codes'].str.split(',').tolist(),
index=jcrdf.jcode).stack(level=0).reset_index(level=0)
matches = jcrdf_lookup[jcrdf_lookup[0].isin(pmdf.code)]
jcrdfmatch = jcrdf[jcrdf.jcode.isin(matches.jcode)]
jcrdfnomatch = pmdf[~pmdf.code.isin(matches[0])]
Mais je ne peux pas comprendre comment inclure pmdf.count.
J'ai essayé de faire une df des codes uniques des correspondances, mais peu importe ce que ces valeurs doivent être dans jcfdf.All_codes.
Merci d'avance, comme d'habitude, pour toute assistance.
Nous vous remercions de ce. Donc, dans la sortie finale, les valeurs sous "code" sont-elles simplement les codes qui correspondent de pmdf à jcrdf.All_codes? – mattrweaver
@mattrweaver, oui ce sont les codes qui correspondent – Vaishali