python - Python Pandas:重新编码变量的级别
问题描述
我在熊猫数据框中有一个分类变量,varA
. 它有 4 个级别:[1, 3, 1.0, 3.0] 而不仅仅是 [1, 3]。我正在努力将 1.0 映射到 1。示例数据集:
df[['varA', 'ID']].groupby(['varA']).count()
count
varA
1 100
1.0 10
3 300
3.0 30
我尝试了什么:
df[['varA']].replace(1.0, 1)
但什么都没有改变。我确信这是一个简单而微不足道的问题,但我一直无法解决它。我期待:
count
varA
1 110
3 330
解决方案
您可以使用以下downcast
参数pd.to_numeric
:
df['varA'] = pd.to_numeric(df['varA'], downcast='integer')
count
varA
1 100
1.0 10
3 300
3.0 30
注意:如果varA
是您的索引(看起来像),您可以通过df.index
而不是df['varA']
.
推荐阅读
- performance - 如何检查 Linux (X86_64) 中的 IRQ 延迟以进行性能调整?
- reactjs - 如何从组件访问另一个功能
- python - 在 Jinaj2.Template.render() 中访问烧瓶方法
- node.js - 反应中的 axios 调用返回 index.html
- visual-studio-code - 当有人更新到我的扩展程序的新版本时,我如何显示消息?
- android - Android Jetpack Compose 文档
- eclipse - 带有 lambda 表达式的 NullPointerException - 使用循环
- flutter - 如何将flutter中收集的联系方式保存到本机通讯录
- java - 如何找到重复多少次的特定名称?
- regex - 是否可以在正则表达式中选择正则表达式规则的逆