Python Pandas:重新编码变量的级别

我在 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


杨__羊羊
浏览 110回答 2
2回答

慕姐4208626

列中的数据varA可以是文本,也可以是文本、浮点数和整数的混合。您可以首先尝试将值转换为浮点数,然后将结果转换为整数:df['varA'] = df['varA'].astype(float).astype(int)

catspeake

您可以使用downcast以下参数pd.to_numeric:df['varA'] = pd.to_numeric(df['varA'], downcast='integer')         countvarA    1        1001.0      103        3003.0      30注意:如果varA是您的索引(如图所示),您可以通过df.index而不是访问它df['varA']。
打开App,查看更多内容
随时随地看视频慕课网APP