利用pandas.DataFrame.replace优雅的进行E

2019-12-17  本文已影响0人  蘑菇猎手

做数据处理工作时,免不了对数据中的 特殊值 进行替换。

传统方式替换:

虽然思路清晰,实现起来也没有难点,但实际工作中往往是列不同、目标值不同,替换值也不同,需要很多的循环、判断嵌套,很容易犯编程中的 循环判断嵌套太深、硬编码问题。

这种情况下,就可以借助强大的 pandas.DataFrame.replace 来实现优雅处理。

这里我选择的是 dict-like (字典模式)来演示,原因如下:

全局替换


MAPPING = {
    'old_val': 'new_val'
}
df = df.replace(MAPPING)

MAPPING = {
    'old_val_1': 'new_val',
    'old_val_2': 'new_val'
}
df = df.replace(MAPPING)

MAPPING = {
    'old_val_1': 'new_val_1',
    'old_val_2': 'new_val_2'
}
df = df.replace(MAPPING)

部分列替换


MAPPING = {
    'columnA': {
        'old_val_1': 'new_val _1'
    },
    'columnB': {
        'old_val_2': 'new_val _2'
    }
}
df = df.replace(MAPPING)

正则表达式

MAPPING 中的 target 改为 正则表达式字符串compiled pattern ,再将 MAPPING 传给 选填参数regex 即可。

MAPPING = {
    'match_old_val_regex': 'new_val'
}
df = df.replace(regex=MAPPING)

参考:

pandas.DataFrame.replace官方文档

上一篇下一篇

猜你喜欢

热点阅读