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()})
非常感谢,这对我的任务有帮助,你能不能更详细地解释一下你想要达到的目标。感谢您分享代码和输出。为了帮你一点忙,请阅读如何问好。