使用字典替换数据帧中的值

2024-09-30 01:29:33 发布

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

我试图使用字典中存储的术语在特定列type1上的数据帧data中执行“查找并替换”。我首先将dataframe中的所有现有值设置为大写。我创建字典mdata,我确保它们也是大写的。然后,通过for语法,我循环通过mdata中的项进行相应替换。这段代码在我将其转换为函数之前一直有效

知道我哪里出错了吗

def to_fish(data, fish):
    data['type1'] = data['type1'].str.upper()
    if fish == 'monument':
        mdata = {
            'natural': 'NATURAL FEATURe',
            'DITCH TERMINUS': 'DITCH',
            'DITCH RECUT': 'DITCH',
            'NATURAL_lyr': 'NATURAL FEATURE'
        }
        mdata = {k.upper(): v.upper() for k, v in mdata.items()}

        for copa, fish in mdata.items():
            data = data.str.rstrip().str.lstrip().replace(copa, fish, regex=True)

Tags: infordata字典itemsnaturalupper术语
2条回答

请尝试map方法:

data['type1'] = data['type1'].map(mdata)

你可以给出这个来得到结果

import pandas as pd
df = pd.DataFrame({'A':['Hello','Bye','OK','Hi','Bonjour'],
                   'B':['Jack','Jill','Bryan','Kevin','Susan'],
                   'C':['High','High','Middle','Middle','Low']})
print (df)
lookup_dict = {'High':'California','Middle':'Chicago','Low':'New York'}
df['C'] = df['C'].map(lookup_dict)
print (df)

之前:

         A      B       C
0    Hello   Jack    High
1      Bye   Jill    High
2       OK  Bryan  Middle
3       Hi  Kevin  Middle
4  Bonjour  Susan     Low

之后:

         A      B           C
0    Hello   Jack  California
1      Bye   Jill  California
2       OK  Bryan     Chicago
3       Hi  Kevin     Chicago
4  Bonjour  Susan    New York

相关问题 更多 >

    热门问题