如何用数据框中的字符串值替换 int 值[重复]

Posted

技术标签:

【中文标题】如何用数据框中的字符串值替换 int 值[重复]【英文标题】:How can I replace int values with string values in a dataframe [duplicate] 【发布时间】:2018-12-27 13:22:04 【问题描述】:

我目前有一个包含很多分类变量的 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

所以我不知道如何处理这个问题:(

【问题讨论】:

@jezrael 大多数是 int64,而有些是 float64 【参考方案1】:

我认为这里最好是map by dictionary by gender 中的所有可能值,否则对于不匹配的值得到NaNs:

df['gender'] = df['gender'].map(1:'male', 2:'female') 

替换后的问题应该是列中的混合类型 - 将 1 替换为字符串 male 和原始数字 2

【讨论】:

非常感谢!它确实奏效了!我已经为这个答案看了一段时间,终于成功了。 @Joy - 欢迎您!

以上是关于如何用数据框中的字符串值替换 int 值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何用相邻值替换数据框中的 NA(缺失值)

如何用python中的方程替换数据框中的缺失值

如何用(data.frame)查找表中的值标签替换数据框中的数字代码?

如何用 NA 替换列中的字符串值并将列转换为浮点数?

如何用熊猫数据框中的范围替换列值

如何用 sed 替换缩小的 javascript 文件中的多个值 [重复]