如何替换数据帧中列的值/字符串?

2024-07-03 07:16:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想替换数据帧中列中的一些字符串,如下所示

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

像这样有成千上万的价值观 在这里我想把东北换成东北,东南换成东南,北纬换成公园路

这是我的密码:

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)

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

提前谢谢!!你知道吗


Tags: 数据字符串textindfmycolumnall
2条回答

这是一种将applylambda结合使用的方法

演示:

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

可以将^{}与参数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

相关问题 更多 >