小编DFo*_*yth的帖子

Pandas Dataframe将带有两个值的分类列重新映射为二进制

我有一个数据框,想要检查"男性"或"女性"的字符串,如果数据框包含它们,它将替换为"1"或"0".由于@Anand S Kumar的回答,目前我正在使用下面的代码.

if dataframe['gender']:
    dataframe['gender'].replace([0,1],['Female','Male'],inplace=True)
if dataframe['sex']:
    dataframe['sex'].replace([0,1],['Female','Male'],inplace=True)
Run Code Online (Sandbox Code Playgroud)

但是,我还要介绍任何其他变体,如"男性","M"和"男性"或"女性","F","f",而宁愿避免为每个变体使用两个if语句.

我尝试过使用更大的列表,例如...

dataframe['gender'].replace([0,1,0,1,0,1,0,1],['Female','Male','male','female','M','F','m','f'],inplace=True)
Run Code Online (Sandbox Code Playgroud)

一本字典...

dataframe['gender'].replace({0:'Female',1:'Male', 0:'female',1:'male',0:'F',1:'M',0:'f',1:'m'},inplace=True)
Run Code Online (Sandbox Code Playgroud)

但是得到了"系列的真实价值是模棱两可的".两者的ValueError.

有没有人知道更好的方式,或者我目前的尝试做错了什么?

提前致谢!

编辑:我的ValueError是因为我的if语句含糊不清.我改变它if 'gender' in dataframe.columns:来修复它.在这里找到了修复.

python dataframe pandas categorical-data

1
推荐指数
1
解决办法
1772
查看次数

标签 统计

categorical-data ×1

dataframe ×1

pandas ×1

python ×1