Как заменить значение / строку из столбца в кадре данных? - PullRequest
0 голосов
/ 21 мая 2018

Я хочу заменить некоторые строки в столбце из фрейма данных, который похож на этот

    df["column"]
------------------
 1. Ne Road
 2. Rosemarys street se
 3. Plunkett pkwy
 4. like that so on.....

, вот так, есть тысячи значений Здесь я хочу заменить Ne на NE, SE на SE, pkwyна Parkway вот так

Так вот мой код:

def replace_all(text, dic):
    for i, j in dic.items():
        text = text.replace(i, j)
    return text

my_text = df.iloc[:,2] -----### '2' is the Column number here in my Dataframe ###

reps = {
'se' : 'SE'
'Ne' : 'NE'
'pkwy' :'"Parkway'
}

df["column"] = replace_all(my_text,reps)

Я хочу знать, где я ошибся, и, пожалуйста, помогите мне в этом.

Заранее спасибо!!

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Вы можете использовать pd.Series.replace с аргументом regex=True:

df = pd.DataFrame({'column': ['Ne Road', 'Rosemarys street se',
                              'Plunkett pkwy', 'like that so on']})

reps = {'se' : 'SE', 'Ne' : 'NE', 'pkwy': 'Parkway'}

df['column'] = df['column'].replace(reps, regex=True)

print(df)

                column
0              NE Road
1  RoSEmarys street SE
2     Plunkett Parkway
3      like that so on
0 голосов
/ 21 мая 2018

Это один подход, использующий apply с lambda

Демо:

import pandas as pd

def replaceString(val):
    reps = {
        'se' : 'SE',
        'Ne' : 'NE',
        'pkwy' :'"Parkway',
        'sw': "SW",
        'rd':"Road"
    }
    for key, v in reps.items():
        if key in val:
            val = val.replace(key, v)
    return val

df = pd.DataFrame({"column": ['Ne Road', 'Rosemarys street se', "Plunkett pkwy", "sw Trampoline rd"]})
print(df["column"].apply(replaceString))

Выход:

0                NE Road
1    RoSEmarys street SE
2      Plunkett "Parkway
3     SW Trampoline Road
Name: column, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...