Python 使用字典向数据框添加列

Python 使用字典向数据框添加列,python,pandas,dataframe,replace,Python,Pandas,Dataframe,Replace,有两本字典: Latitud = {'Cundinamarca': 4.6 , 'Norte de Santander': 7.9, 'Antioquia': 6.2} Longitud = {'Cundinamarca': -74.1 , 'Norte de Santander': -72.5, 'Antioquia': -75.5} 考虑到“Departamento”列,我尝试在数据帧中创建两个新列,代码如下: df['Latitud'] = df['Departamento'].

有两本字典:

 
Latitud = {'Cundinamarca': 4.6 , 'Norte de Santander': 7.9, 'Antioquia': 6.2} 

Longitud = {'Cundinamarca': -74.1 , 'Norte de Santander': -72.5, 'Antioquia': -75.5}
考虑到“Departamento”列,我尝试在数据帧中创建两个新列,代码如下:

df['Latitud'] = df['Departamento'].map(Latitud) 

df['Longitud'] = df['Departamento'].map(Longitud)
但我有一个:

Departamento , Municipio , Latitud , Longitud

Cundinamarca , Bogota    , Nan     , Nan

Cundinamarca , Bogota    , Nan     , Nan

Norte de Santander , Cúcuta    , Nan     , Nan

Antioquia    , Medellín    , Nan     , Nan

如何解决这个问题?。谢谢

这可能是不区分大小写的问题,我们可以尝试使用小写字母映射:

df['Latitud'] = df['Departamento'].str.lower().map({k.lower() : v 
                                                    for k,  v in Latitud.items()})
对于
Longitud

可能需要更换坯料:

df['Latitud'] = (df['Departamento'].str.lower()
                                   .str.replace(' ', '').map({k.lower() : v                                                      
                                                             for k,  v in Latitud.items()})
                 )

尝试替换空格:
df['Latitud']=df['departmento'].str.lower().str.replace('',).map({k.lower():v代表k,v代表Latitud.items()})
非常感谢,这对我的任务有帮助,你能不能更详细地解释一下你想要达到的目标。感谢您分享代码和输出。为了帮你一点忙,请阅读如何问好。