首页 > 解决方案 > 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

标签: pythonpandas

解决方案


您可以使用以下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'].


推荐阅读