Python-сравнить два строковых столбца в одном фрейме данных, вернуть результат соответствия

У меня есть один фрейм данных, в котором есть два столбца состояния строки: State и STATE_ALPHA, которые я хочу возвращать, только если эти два столбца совпадают. Оба столбца представляют собой двухсимвольные строки (AK, CA, FL), и я знаю, каким должен быть ожидаемый результат. Спасибо за вашу помощь.

Я пробовал это ниже:

 df10=df9['State']==['STATE_ALPHA']

ошибка, которую я получаю: массивы были разной длины: 706 против 1

 df10=df9['State']=['STATE_ALPHA']

ошибка, которую я получаю: длина значений не соответствует длине индекса

df10=df9['State']==df9['STATE_ALPHA']
pault 13.09.2018 20:02
df9['State']==df9['STATE_ALPHA']
mad_ 13.09.2018 20:02

Они не возвращают совпадающие строки, но не выдают мне ошибки.

NSaibot 13.09.2018 20:06

Это не приведет к ошибке, так как длина такая же, но вернет логический ряд, который вы можете использовать для фильтрации. см. мой ответ ниже

mad_ 13.09.2018 20:12

Я опубликовал решение своего вопроса. Мы были очень близки.

NSaibot 18.09.2018 23:32
2
5
7 653
3

Ответы 3

import pandas as pd
df=pd.DataFrame({"string1":['CA','MI','AZ','NY'],"string2":['CA','MA','FL','NY']})

df_common=df[df[["string1","string2"]].apply(lambda x : x[0]==x[1],axis=1)].reset_index(drop=True).copy()

Используя пример ввода из @Veera

df=pd.DataFrame({"string1":['CA','MI','AZ','NY'],"string2":['CA','MA','FL','NY']})
df[df.string1==df.string2]
string1 string2
0   CA  CA
3   NY  NY

Это решение отлично подходит для того, что мне нужно. Спасибо за вашу помощь.

df8 = df7[df7['State'] == df7['STATE_ALPHA']]

Другие вопросы по теме