Как заменить подстроки в кадре данных в Python - PullRequest
0 голосов
/ 16 сентября 2018


У меня есть фрейм данных, в котором я хочу заменить одни слова другими, основываясь на другом фрейме данных:

import pandas as pd
dist = pd.DataFrame([["21","apple"],["25","balana"],["30","lemon"]],columns=["idx","item"])
a = pd.DataFrame(["apple - banana"],columns=["pf"])
a['pf'] = a['pf'].replace(dist["item"], dist["idx"], regex=True)
print(a)

Как я могу это сделать? (это не работает в текущей форме)

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

Преобразование таблицы перевода в словарь, кажется, решает проблему:

import pandas as pd
dist = pd.DataFrame([["apple","21"],["banana","25"],["lemon","30"]],columns=["item","idx"])
dist = dist.set_index('item')['idx'].to_dict()
a = pd.DataFrame(["apple - banana"],columns=["pf"])
a['pf'] = a['pf'].replace(dist, regex=True)
print(a)
0 голосов
/ 16 сентября 2018

Вы можете попробовать это:

dist = pd.DataFrame([["21","apple"],["25","balana"],["30","lemon"]],columns= ["idx","item"])
a = pd.DataFrame(["apple - banana"],columns=["pf"])
b = dict(zip(dist["idx"], dist["item"]))

def replace_items(token):
    for key, value in b.items():
        token = token.replace(value, key)
    return token

a["pf"] = a["pf"].apply(replace_items)

Помните, что banana в вашем dist кадре данных balana.Не уверен, что это так ...

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