如何用数据框中的字符串值替换 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
中的所有可能值,否则对于不匹配的值得到NaN
s:
df['gender'] = df['gender'].map(1:'male', 2:'female')
替换后的问题应该是列中的混合类型 - 将 1
替换为字符串 male
和原始数字 2
。
【讨论】:
非常感谢!它确实奏效了!我已经为这个答案看了一段时间,终于成功了。 @Joy - 欢迎您!以上是关于如何用数据框中的字符串值替换 int 值[重复]的主要内容,如果未能解决你的问题,请参考以下文章