0
votes

Pandas DataFrame contient alors remplacer ensuite le dictionnaire

J'ai un ataframe avec des colonnes A et B. Je veux dire pour chaque ligne si une contient "Fred" puis B est appelée "bleu".

Je peux le faire avec cette ligne p>

0   FREDDDD     blue
1   dfdfa       dfdf
2   dfdf        dfsd
3   GFDFJESS    red
4   sdfdsfds    dsfd


9 commentaires

dic n'a-t-il toujours que deux entrées?


Non, il aura des charges


juste fait 2 pour l'exemple


Ok, dans ce cas, que se passe-t-il si une contient quelque chose d'autre que Fred et Jess?


Je vois ce que vous obtenez, mais il y aura beaucoup plus de sorties, que vrai et faux. So Fred = 1, Jess = 2, George = Bleu, Matt = voiture, etc.


Devraient-ils être des matchs de mots pleins? Par exemple, «Jess» doit correspondre à "Jessie"? Devrait "Fred" correspondre "Fred Flintstone"? Beaucoup de trous dans votre question ...


Oui, ne contient pas de match complet


Question finale: Si rien n'est égalé, est le résultat Nan?


ouais serait bien


3 Réponses :


3
votes

Utilisez quelque chose comme:

print(df) #dummy dataframe

    Name  some_col
0   Fred       1.0
1  CHECK       1.0
2   Jess       NaN
3  CHECK       3.0
4    efg       NaN
5    ijk       3.0
6    lmn       1.0
7    opq       7.0

d=dict(zip(df.Name,df.Name.str.contains('Fred')))
print(d)

{'Fred': True,
'CHECK': False,
 'Jess': False,
 'efg': False,
 'ijk': False,
 'lmn': False,
 'opq': False}


0 commentaires

4
votes

Utilisez str.extract avec série.map : xxx

xxx


0 commentaires

3
votes

Utilisation de Findall avec mappe , puis attribuez-le xxx


0 commentaires