如何解决Pandas 数据帧 value_counts 将相同的值作为唯一值单独计数
我尝试替换 ?在具有列模式的数据集中。
首先我使用
检查该列中的唯一值df['bare_nucleoli'].value_counts()
这是结果
1 402
10 132
5 30
2 30
3 28
8 21
4 19
? 16
9 9
7 8
6 4
Name: bare_nucleoli,dtype: int64
所以我决定先把问号改成NaN,以便检查其他列的标记
import numpy as np
df.replace('?',np.nan,inplace = True)
然后将 NaN 更改为该列的众数,即 1。
df['bare_nucleoli'].fillna(1,inplace = True)
结果显示它改变了NaN值,但是像这样被单独算作另一个唯一值
1 402
10 132
5 30
2 30
3 28
8 21
4 19
1 16
9 9
7 8
6 4
Name: bare_nucleoli,dtype: int64
这背后的原因是什么,如何更改值并将其放在同一组中?
解决方法
只是猜测,但如果您尝试 df.dtypes,您可能会发现第一列是对象类型。可能第一个是字符串 '1' 而不是数字 1。
,它可能是一个字符串而不是一个整数。使用
,您可以更轻松地实现目标 bare_nucleoli_mode = df['bare_nucleoli'].mode()
df['bare_nucleoli'] = df['bare_nucleoli'].replace('?',bare_nucleoli_mode)`.
,
尝试:
df.loc[df['bare_nucleoli'] == '?'] = 1
df['bare_nucleoli'].value_counts()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。