我目前有一个带有很多分类变量的csv文件。 数据最初来自spss,并进行了进一步的聚类分析 在数据上,我需要用数字代替变量名称。 因此,我将用以下示例中的字符串替换int值 1代表男性,而2代表女性
df[(df['gender']==1)]['gender'] = 'male'
但是我知道它是行不通的,因为该列最初包含int值,所以无法用字符串值替换,因此首先我尝试将列转换为字符串,例如使用以下代码,然后将1替换为男性
df['gender'] = df['gender'].astype(str)
或
df['gender'].apply(str)
但是当我随后运行以下代码
df[(df['gender']=='1')]['gender'] = 'male'
我收到以下错误
TypeError: invalid type comparison
所以我不知道如何处理这个问题:(
答案 0 :(得分:2)
我认为最好的是dictionary
中gender
中所有可能的值,NaN
中的map
,否则得到df['gender'] = df['gender'].map({1:'male', 2:'female'})
的不匹配值:
1
问题应在替换后在列中混合使用-将male
替换为字符串2
和原始数字LinkBuilder
。