Найдите строки из df2.col2 как подстроки в df1.col1 и замените их строками из df2.col1. - PullRequest
0 голосов
/ 07 ноября 2019

Не удалось получить желаемый результат:

У меня есть фрейм данных:

df1 = pd.DataFrame({"Address":['1024 FRANCIS CIRC', '2077 JOHNSON CLF', '1099 S ARLINGTON RDGE ROAD']})

У меня есть второй фрейм данных:

df2 = pd.DataFrame({"Address_Type":['CIRCLE','CIRCLE','CLIFF','RIDGE','RIDGE'],
"Abbreviation":['CIR','CIRC','CLF','RDG','RDGE']})

I 'Я хотел бы найти строки в df2.Abreviation в df1.Address и, если найден, заменить его на соответствующую строку в df2.Address_Type.

Результат, который я хотел бы видеть:

df1 = pd.DataFrame("Address":['1024 FRANCIS CIRCLE', '2077 JOHNSON CLIFF', '1099 S ARLINGTON RIDGE ROAD']})

Пробовал лямбда-функцию и лямбда-функцию с помощью вызовов функций, но без сигары.

1 Ответ

0 голосов
/ 07 ноября 2019

Попробуйте это:

for i in range(len(df1['Address'])):

    str_item = df1['Address'].iloc[i].split( )

    for j in range(len(str_item)):

        index_row = df2.loc[df2['Abbreviation'] == '{}'.format(str_item[j])].index.values.astype(int)

    if index_row > 0:

        str_item[j] = df2['Address_Type'].iloc[index_row].values[0]

    str_new = ' '.join(str_item)

   df1['Address'].iloc[i] = str_new
...