假设熊猫数据框中有一个状态列,如下所示: 这是示例数据。实际情况可能有所不同
df = pd.DataFrame({"state": ["Uttar Pradesh", "Jammu & Kashmir", "Jammu&Kashmir", "Puducherry"]})
现在的任务是将Jammu & Kashmir
更改为Jammu and Kashmir
,将Puducherry
更改为Pondicherry
因此,我为此创建了一个词典
STATE_MAP_DICT = {
"jammu&kashmir": "Jammu and Kashmir",
"orissa": "Odisha",
"orrissa": "Odisha",
"puducherry": "pondicherry",
"damananddiu": "Dadra and Nagar Haveli"
}
然后
df['state'] = df["state"].astype(str).str.replace(' ','').str.lower().replace(STATE_MAP_DICT)
期望:
["Uttar Pradesh", "Jammu and Kashmir", "Jammu and Kashmir", "pondicherry"]
输出:
["uttarpradesh", "Jammu and Kashmir", "Jammu and Kashmir", "pondicherry"] # Uttar Pradesh
自从我使用replace()和lower()以来发生了更改
有没有办法解决这个问题
您可以使用
numpy.where
并在替换和降低字符串后检查字典键中是否存在值。如果是,我们想替换它,如果不是-我们不做任何更改:输出:
您可以使用map方法和fillna
输出:
只需将以下条目添加到词典中:
或者,使用自定义函数代替
str
:相关问题 更多 >
编程相关推荐