在熊猫数据框中将“否”和“是”转换为 0 和 1

新手上路,请多包涵

我想转换包含 int 以及“是”和“否”值的“edjefe”列的数据。我的问题是我只想将“是”和“否”映射到 1 和 0 并保持 int 值不变所以我写了这段代码

def foo(x):
    if x == 'no':
        return 0
    elif x == 'yes':
        return 1
    else:
        return x

df1.edjefe.map(lambda x : foo(x))

但我收到一个错误,

 RecursionError: maximum recursion depth exceeded while calling a Python object

原文由 Aptha Gowda 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 518
2 个回答

您也可以只使用 replace

df.edjefe.replace(to_replace=['no', 'yes'], value=[0, 1])

原文由 ksbg 发布,翻译遵循 CC BY-SA 4.0 许可协议

只需使用 dict-like to_replace

 df['edjefe'].replace({'no': 0, 'yes': 1})

原文由 Lev Zakharov 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题