首页 > 解决方案 > Python - 如何将 1/0 转换为是/否(在 pandas.DataFrame 中)?

问题描述

R中,如果我想基于另一个带有1and0的列创建一个带有 YES/NO 的新列,下面的代码可以满足我的目的。

df <- data.frame(alpha = c(50, 51, 52), beta = c(1,0,1))
df$gamma <- factor(df$beta, label = c('no','yes'))

  alpha beta gamma
1    50    1   yes
2    51    0    no
3    52    1   yes

但我不确定如何在Python中做同样的事情。任何人都可以完成以下代码或建议不同的方法吗?

import pandas as pd
df = pd.DataFrame({'alpha': [50, 51, 52], 'beta': [1,0,1]})
df['gamma'] = ??????

提前致谢。(越简单越好)

标签: pythonrpandas

解决方案


您可以使用pd.Series.map,它接受字典输入:

import pandas as pd

df = pd.DataFrame({'alpha': [50, 51, 52], 'beta': [1,0,1]})

df['gamma'] = df['beta'].map({True: 'yes', False: 'no'})

推荐阅读