楼主: casey_c
3124 1

[程序分享] Python 中的缺失值及其处理 [推广有奖]

  • 0关注
  • 10粉丝

博士生

92%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.1003
学术水平
2 点
热心指数
15 点
信用等级
2 点
经验
11502 点
帖子
278
精华
0
在线时间
94 小时
注册时间
2016-11-22
最后登录
2022-5-2

楼主
casey_c 发表于 2017-1-13 10:43:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
缺失值处理用到的主要工具为 Numpy 库和 Pandas库中的有关函数,要导入 Numpy 和 Pandas:
  1. import numpy as np
  2. import pandas as pd
复制代码


在 Python 中,特殊的常量 None 通常被理解为缺失值的一种,我们构建了一个包含有 None 的 Numpy 数组 vals1:

  1. vals1 = np.array([1, None, 3, 4])
  2. vals1
复制代码
array([1, None, 3, 4], dtype=object)
  1. for dtype in ['object', 'int']:
  2.     print("dtype =", dtype)
  3.     %timeit np.arange(1E6, dtype=dtype).sum()
  4.     print()
复制代码
dtype = object10 loops, best of 3: 78.2 ms per loopdtype = int100 loops, best of 3: 3.06 ms per loop
  1. vals1.sum()
复制代码
1.png
可以看到,当我们的数组中存在缺失值 None 时,我们无法完成简单的求和运算,并且会出现程序报错。
运用 Numpy 库,我们可以用另一种方式生成缺失值,即使用 np.nan
  1. vals2 = np.array([1, np.nan, 3, 4])
  2. vals2.dtype
复制代码
dtype('float64')
  1. 1 + np.nan
复制代码
nan
  1. 0 *  np.nan
复制代码
nan
可以发现,np.nan 虽然也不能参与简单的计算,但不会出现程序报错的情况,我们得到的结果将为 nan
同时,Numpy 库还专门为我们准备了用于处理 nan 值的特殊函数 nansumnanmin 以及 nanmax 等:
  1. vals2.sum(), vals2.min(), vals2.max()
复制代码
(nan, nan, nan)
  1. np.nansum(vals2), np.nanmin(vals2), np.nanmax(vals2)
复制代码
(8.0, 1.0, 4.0)
在 Pandas 序列中,不论我们生成的缺失值是 None 还是 nan,都会被转化为 NaN 的形式:
  1. pd.Series([1, np.nan, 2, None])
复制代码
2.png

以上内容转自 数析学院,原文内容较多,这里只是一部分,感兴趣的同学可以直接查看原文




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 缺失值 pandas object import

沙发
casey_c 发表于 2017-1-16 10:53:15

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-16 13:34