【发布时间】:2018-09-30 05:22:38
【问题描述】:
我有一个数据框进来,想检查“男性”或“女性”的字符串,如果数据框包含它们,它将被替换为“1”或“0”。感谢@Anand S Kumar's answer,目前我正在使用下面的代码。
if dataframe['gender']:
dataframe['gender'].replace([0,1],['Female','Male'],inplace=True)
if dataframe['sex']:
dataframe['sex'].replace([0,1],['Female','Male'],inplace=True)
但是,我还想涵盖任何其他变体,例如“男性”、“M”和“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)
一本字典...
dataframe['gender'].replace({0:'Female',1:'Male', 0:'female',1:'male',0:'F',1:'M',0:'f',1:'m'},inplace=True)
但是得到了“系列的真值是模棱两可的”。两者都有 ValueError。
有没有人知道更好的方法,或者我目前的尝试做错了什么?
提前致谢!
编辑:我的 ValueError 是因为我的 if 语句含糊不清。我将其更改为if 'gender' in dataframe.columns: 来修复它。找到了修复here。
【问题讨论】:
标签: python pandas dataframe categorical-data