0
votes

Comment trouver les mêmes entrées dans 2 séries de pandas mais avec une sensibilité à la casse différente

Je voudrais comparer 2 séries de pandas et trouver les mêmes entrées dans les deux séries mais avec une sensibilité à la casse différente.

Similaire à l'exemple ci-dessous:

 df['Comment']=np.where((df['Identifier_1']==df['Identifier_2']),'The same',df['Comment'])

mais La condition doit être modifiée d'une manière ou d'une autre pour que si Identifier_1 = 'aBc' et Identifier_2 = 'Abc' renvoie Vrai.

Thanx et BR


0 commentaires

3 Réponses :


0
votes

Utilisez lower():

df['Comment']=np.where(df['Identifier_1'].astype(str).lower() == df['Identifier_2'].astype(str).lower(),'The same',df['Comment'])

Par défaut, les deux chaînes seront en minuscules afin qu'elles puissent être comparées comme vous le souhaitez. De cette façon, AbC et aBc seront respectivement transformés en abc et abc , renvoyant True code >


0 commentaires

0
votes

Utilisez la série .str.lower :

df = pd.DataFrame({'Identifier_1':['aBc','aBC'],
                   'Identifier_2':['Abc','ABZ'],
                   'Comment':['com1','com2']})

df['Comment']=np.where(df['Identifier_1'].str.lower() == df['Identifier_2'].str.lower(),
                       'The same',
                        df['Comment'])

print (df)
  Identifier_1 Identifier_2   Comment
0          aBc          Abc  The same
1          aBC          ABZ      com2


0 commentaires

0
votes

Utilisez simplement str.lower () pour les mettre tous les deux en minuscules.

df['Comment']=np.where(df['Identifier_1'].str.lower().equals(df['Identifier_2'].str.lower()),
                      'The same',
                      df['Comment'])


0 commentaires