python - 在 python 中清理这个 int64 变量
问题描述
这是 var FREQUENCY 的原始分布
NaN 22131161
1.0 4182626
7.0 218343
3.0 145863
1 59432
0.0 29906
2.0 28129
4.0 15237
5.0 4553
8.0 3617
3 2754
7 2635
9.0 633
2 584
4 276
0 112
8 51
5 42
6.0 19
A 9
I 7
9 6
Q 3
Y 2
X 2
Z 1
C 1
N 1
G 1
B 1
Name: FREQUENCY, dtype: int64
- 组 1.0 应该和 1 一样。我写了 df['x']=df['x].replace({'1.0:'1'})。它不会改变任何东西。9.0 vs 9, 3.0 vs.3 症状相同
- 在出现字母的情况下,频率如何呈现为 int64?
- 期望结果 1:将所有字母组 +NaN 归为一组。其余数值组合并(例如,1.0 和 1 =1)。在 SAS 中,我只运行这个:y=1*X。我只是给出一个值 10 来表示字符组 + NaN。如何在 Python 中做到这一点,尤其是优雅的?
- 结果 2:如果 x=NaN,则提取二进制变量 z=1。否则 z=0
解决方案
第一个问题“组1.0应该与1相同。我写了df['x']=df['x].replace({'1.0:'1'})。它没有改变任何东西。9.0 vs 9,一旦我在读取 csv 文件时添加了 dtype={'FREQUANCY':'object'} ,3.0 与 3 具有相同的症状“已修复。组 1.0 与组 1 折叠...之后替换工作正常。
几乎所有其他问题都得到了解决,除了问题 2,它仍然将变量类型设置为 int64,其中存在字符变量。我的猜测是 Python 可能采用多数规则来对数据类型进行投票。确实是真正的数值在计数中占主导地位。
推荐阅读
- java - TOmcat 启动时出错:java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
- c - 您能在 ZeroMQ 中获取发布者和订阅者的身份/地址吗?
- c# - 附加到代码中的内容时,单元格重复图像
- amazon-web-services - Terraform 自定义属性破坏用户池 AWS
- yii2 - yii2,跳过查询中的空字段
- python - 如何设置 Google 凭据以从 Heroku 上的 Python 应用程序调用 Google API
- python - Python PyX 绘图:PDF 文件包含
- javascript - 从 API Url Javascript 保存文件
- r - ggplot中的多行
- angular - 带有非标准 HTML 标签的 Vim 和 Syntastic