pandas的学习4-处理丢失数据
2024-10-19 23:38:04
import pandas as pd
import numpy as np '''
有时候我们导入或处理数据, 会产生一些空的或者是 NaN 数据,如何删除或者是填补这些 NaN 数据就是我们今天所要提到的内容.
建立了一个6X4的矩阵数据并且把两个位置置为空.
'''
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])
df.iloc[0,1] = np.nan
df.iloc[1,2] = np.nan
"""
A B C D
2013-01-01 0 NaN 2.0 3
2013-01-02 4 5.0 NaN 7
2013-01-03 8 9.0 10.0 11
2013-01-04 12 13.0 14.0 15
2013-01-05 16 17.0 18.0 19
2013-01-06 20 21.0 22.0 23
"""
'''
pd.dropna() 去掉 如果想直接去掉有 NaN 的行或列, 可以使用 dropna
'''
df.dropna(
axis=0, # 0: 对行进行操作; 1: 对列进行操作
how='any' # 'any': 只要存在 NaN 就 drop 掉; 'all': 必须全部是 NaN 才 drop
)
"""
A B C D
2013-01-03 8 9.0 10.0 11
2013-01-04 12 13.0 14.0 15
2013-01-05 16 17.0 18.0 19
2013-01-06 20 21.0 22.0 23
""" '''
pd.fillna(value=) 代替
如果是将 NaN 的值用其他值代替, 比如代替成 0:
'''
df.fillna(value=0)
"""
A B C D
2013-01-01 0 0.0 2.0 3
2013-01-02 4 5.0 0.0 7
2013-01-03 8 9.0 10.0 11
2013-01-04 12 13.0 14.0 15
2013-01-05 16 17.0 18.0 19
2013-01-06 20 21.0 22.0 23
""" # pd.isnull()
#
# 判断是否有缺失数据 NaN, 为 True 表示缺失数据: df.isnull() #这个是返回一个dateframe
"""
A B C D
2013-01-01 False True False False
2013-01-02 False False True False
2013-01-03 False False False False
2013-01-04 False False False False
2013-01-05 False False False False
2013-01-06 False False False False
""" # 检测在数据中是否存在 NaN, 如果存在就返回 True:
#np.any()是概括
# np.any(df.isnull()) == True
# True
df.dropna(
axis=0, # 0: 对行进行操作; 1: 对列进行操作
how='any' # 'any': 只要存在 NaN 就 drop 掉; 'all': 必须全部是 NaN 才 drop
)
去掉有空值的行或者列
dateframe.fillna(value= ) 替代控制为value的值
dateframe.isnull() 这个返回的是一个dateframe 里面的只有false,true 当存在na的时候就是true
np.any(dateframe.isnull() ) 判断这个dateframe是否有空值
出处:https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/3-4-pd-nan/
最新文章
- .net core快速上手
- mySql 注入攻击
- 常用的SQL分页
- 敏捷软件开发:原则、模式与实践——第8章 SRP:单一职责原则
- 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?
- 微博MySQL优化之路--dockone微信群分享
- Java虚拟机(JVM)中的内存设置详解
- 第十二篇 Integration Services:高级日志记录
- JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
- CentOS7上LNMP安装包一步搭建LNMP环境
- 英语-TOEFL和GRE复习计划与资料
- POJ1192最优连通子串----树形dp
- 今天遇到一个关于栈溢出的问题StackOverflowError
- windows 中java开发环境搭建
- Windows Docker 使用笔记
- C#开源项目大全
- A1075. PAT Judge
- (zhuan) Notes on Representation Learning
- Visual Studio 2008 安装失败(“Web 创作组件”无法安装)(转)
- 如何通过cmd命令进入到某个硬盘的文件夹