首页 > 解决方案 > 如何从数据框中的列中替换值/字符串?

问题描述

我想从这样的数据框中替换列中的一些字符串

    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)

我想知道我哪里出错了,请帮助我解决这个问题。

提前致谢!!

标签: pythonexcelstringpandasdataframe

解决方案


这是使用applywith的一种方法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

推荐阅读