Как найти те же записи в серии 2 pandas, но с разной чувствительностью к регистру - PullRequest
0 голосов
/ 30 января 2020

Я хотел бы сравнить 2 pandas серии и найти одинаковые записи в обеих сериях, но с разной чувствительностью к регистру.

Аналогично приведенному ниже примеру:

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

, но условие должно быть как-то изменено так, чтобы, если Identifier_1 = 'aB c' и Identifier_2 = 'Ab c', тогда возвращалось бы True.

Thanx и BR

Ответы [ 3 ]

0 голосов
/ 30 января 2020

Использование Series.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 голосов
/ 30 января 2020

Просто используйте str.lower(), чтобы сделать их оба строчными.

df['Comment']=np.where(df['Identifier_1'].str.lower().equals(df['Identifier_2'].str.lower()),
                      'The same',
                      df['Comment'])
0 голосов
/ 30 января 2020

Использовать lower():

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

По умолчанию обе строки будут строчными, чтобы их можно было сравнивать по мере необходимости. Таким образом AbC и aBc будут преобразованы в abc и abc соответственно, возвращая True

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...