pandas - 如果熊猫数据框中不存在替换术语,如何忽略它们?
问题描述
我有以下代码将一个术语替换为另一个术语,这仅在熊猫数据框中存在该值时才有效,我假设我需要包含gdf[montype] = gdf[montype].replace(dict(montype), regex=True)
一个if statement
?我该怎么做,或者有更好的方法吗?
montype = [
['HIS_COP_', ''],
['_Ply', ''],
['_Pt',''],
['BURIAL','burial'],
['CUT', 'CUT'],
['MODERN', 'MODERN'],
['NATURAL', 'NATURAL'],
['STRUCTURE', 'STRUCTURE'],
['SURFACE', 'SURFACE'],
['TREETHROW', 'natural feature'],
['FURROW', 'FURROW'],
['FIELD_DRAIN', 'FIELD_DRAIN'],
['DEPOSIT_FILL', 'DEPOSIT_FILL'],
['POSTHOLE', ''],
['TIMBER', ''],
['', '']
]
gdf[montype] = gdf[montype].replace(dict(montype), regex=True)
当该术语不存在时,我收到错误raise KeyError(f"None of [{key}] are in the [{axis_name}]")
编辑:
mtype = {
'HIS_COP_': '',
'_Ply': '',
'_Pt': '',
'BURIAL': 'burial',
'CUT': 'CUT',
'MODERN': 'MODERN',
'NATURAL': 'NATURAL',
'STRUCTURE': 'STRUCTURE',
'SURFACE': 'SURFACE',
'TREETHROW': 'natural feature',
'FURROW': 'FURROW',
'FIELD_DRAIN': 'FIELD_DRAIN',
'DEPOSIT_FILL': 'DEPOSIT_FILL',
'POSTHOLE': '',
'TIMBER': ''
} # dict(montype)
gdf['montype'] = gdf['montype'].map(mtype).fillna(gdf['montype'])
解决方案
你可以试试这个:
# Convert you list to dict
Montype={'His_cop':'','Modern':'Modern', etc...} # dict(montype)
gdf[montype]=gdf[montype].map(Montype).fillna('whatever value you want')
推荐阅读
- python - 在数组中创建模式
- tabulator - 制表符 - 在单元格级别而不是列指定格式化程序
- reactjs - useContext 发出警告,指出 [context, setContext] 中的“上下文”未使用。如果我删除它应用程序崩溃
- c# - 在 Visual Studio 中调试 c# 控制台应用程序时始终显示项目图标
- python - 生成对数浮点范围
- python - 将 self 分配给 Python 类中的变量是什么意思?
- c - 如何用 C 解释这个程序的输出?
- python - pygame 中不断弹出弃用警告
- angular - Nestjs中的两种方式通信
- r - 如何基于R中具有相同字符串的两列的计算添加具有相同逻辑的多个新列