I started this question yesterday and have done more work on it.
感谢@AMC,@ALollz
我有一个手术活动数据框架,它有58列和200,000条记录。其中一列是治疗专业,每一行对应一个病人的遭遇。我想看看医学专业的相对分布情况。其中一列是'TRETSPEF‘= treatment_specialty。我已经使用`pd.read_csv('csv,usecols = ['TRETSPEF')来导入该系列。
df
TRETSPEF
0 150
1 150
2 150
3 150
4 150
... ...
218462 150
218463 &
218464 150
218465 150
218466 218`最常见的治疗专业是神经外科(代码150)。所以问题就来了。当我应用.value_counts时,我得到150个代码的两个组(和218个代码)
df['TRETSPEF'].value_counts()
150 140411
150 40839
218 13692
108 10552
218 4143
...
501 1
120 1
302 1
219 1
106 1
Name: TRETSPEF, Length: 69, dtype: int64有一些'&‘在那里(454),所以我想知道他们不是整数的事实是否把事情搞得一团糟,所以我把它们改成了空值,并运行了值计数。
df['TRETSPEF'].str.replace("&", "").value_counts()
150 140411
218 13692
108 10552
800 858
110 835
811 692
191 580
323 555
454
100 271
400 116
420 47
301 45
812 38
214 24
215 23
180 22
300 17
370 15
421 11
258 11
314 5
422 4
260 4
192 4
242 4
171 4
350 2
307 2
302 2
328 2
160 1
219 1
120 1
107 1
101 1
143 1
501 1
144 1
320 1
104 1
106 1
430 1
264 1
Name: TRETSPEF, dtype: int64因此,通过将'&‘更改为null,我似乎已经丢失了第二组150条记录-大约40000条记录。空值仍在.value_counts though.The中显示,该系列的长度已从69降至45。我试着去掉空格--没有区别。不确定要运行什么测试来查看发生这种情况的原因。我觉得这一定是由于数据的原因。
发布于 2020-02-11 05:59:45
这是一个100%的数据清理问题。尝试force the column to be numeric.
pd.to_numeric(df['TRETSPEF'], errors='coerce').value_counts()
https://stackoverflow.com/questions/60158910
复制相似问题