【发布时间】:2021-07-29 08:00:42
【问题描述】:
我尝试替换 ?在数据集中与列的模式。
首先我使用检查该列中的唯一值
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['bare_nucleoli'] = pd.to_numeric(df['bare_nucleoli'], errors='coerce')替换您的.replace()行,这将负责将?转换为NaN并将整个列转换为数字。然后你可以运行.fillna()。 -
问题解决了!谢谢
标签: python pandas dataframe nan dtype