当前位置: 首页 > news >正文

yjs12——pandas缺失值的处理

1.缺失值的表示

正常来说,pandas缺失值是“nan”表示,但是有且文件可能自己改成了相应的别的符号

2.如何将缺失值符号改成nan

xxx.replace(to_replace="...",value=np.nan)

3.判断是否有缺失值

1.pd.notnull(xxx)————如果有缺失,则在缺失处返回false
2.pd.isnull(xxx)——————如果有缺失,在缺失处返回True

在判断缺失时,我们常常要的是最后的结果,不是这个表的所有数据的true/false

所以常常搭配 numpy中的all或者any来进行数据的判断

notnull——如果数据有缺失值,该处返回false,np.all在外嵌套,一旦不全是true,就会返回false,所以一旦有缺失,最终返回false                  np.all(pd.notnull(data))
isnull————一旦有数据缺失,isnull就会在该处返回true;np.any在外嵌套,如果数据存在true,就会返回true。综上所述,一旦有缺失,就会返回true        np.any(pd.isnull(data))

4.缺失值的替换、删除

# 替换——xx=xxx.fillna(替换后的值,inplace=True、False)       inplace=True,原数据也会替换,=False,原数据不会做出改变
# 删除———xx=xxx.dropna()删除操作不会对原数据进行改变

一般的写法:

for i in data_drop.columns:if np.any(pd.isnull(data_drop[i])) == True:data_drop[i].dropna()
print(data_drop)

代码:

# 缺失值的处理
import pandas as pd
import numpy as np
from pandas import DataFrame# 1.引入文件
data = pd.read_csv("E:/研究生/机器学习/百度云笔记/data/s1.csv")
data_replace = data
data_drop = data# 2.查看是否有缺失值
print(np.all(pd.notnull(data)))
# notnull——如果数据有缺失值,该处返回false,np.all在外嵌套,一旦不全是true,就会返回false,所以一旦有缺失,最终返回falseprint(np.any(pd.isnull(data)))
# isnull————一旦有数据缺失,isnull就会在该处返回true;np.any在外嵌套,如果数据存在true,就会返回true。综上所述,一旦有缺失,就会返回true
"""注意搭配:np.all与notnull搭配,np.any与isnull搭配"""# 3.缺失值的查找+替换、删除
# 替换——xxx.fillna(替换后的值,inplace=True、False)
for i in data_replace.columns:if np.any(pd.isnull(data_replace[i])) == True:data_replace[i].fillna(data_replace[i].mean(), inplace=False)
print(data)
print(data_replace)# 删除———xxx.dropna()
for i in data_drop.columns:if np.any(pd.isnull(data_drop[i])) == True:data_drop[i].dropna()
print(data)
print(data_drop)# 当缺失值不是nan形式,如何替换?
data1=pd.read_csv("E:/研究生/机器学习/百度云笔记/data/Salary_1.csv")
data1.replace(to_replace="?",value=np.nan)
print(data1)

结果:

False
True
   Unnamed: 0  Rk             PLAYER  ...    PACE   W  SALARY_MILLIONS
0           0   1  Russell Westbrook  ...  102.31  46            26.50
1           1   2       James Harden  ...  102.98  54            26.50
2           2   3      Isaiah Thomas  ...   99.84  51            26.50
3           3   4      Anthony Davis  ...  100.19  31              NaN
4           4   6   DeMarcus Cousins  ...   97.11  30              NaN
5           5   7     Damian Lillard  ...   99.68  38            24.33
6           6   8       LeBron James  ...   98.38  51            30.96
7           7   9      Kawhi Leonard  ...   95.79  54            31.30

[8 rows x 13 columns]
   Unnamed: 0  Rk             PLAYER  ...    PACE   W  SALARY_MILLIONS
0           0   1  Russell Westbrook  ...  102.31  46            26.50
1           1   2       James Harden  ...  102.98  54            26.50
2           2   3      Isaiah Thomas  ...   99.84  51            26.50
3           3   4      Anthony Davis  ...  100.19  31              NaN
4           4   6   DeMarcus Cousins  ...   97.11  30              NaN
5           5   7     Damian Lillard  ...   99.68  38            24.33
6           6   8       LeBron James  ...   98.38  51            30.96
7           7   9      Kawhi Leonard  ...   95.79  54            31.30

[8 rows x 13 columns]
   Unnamed: 0  Rk             PLAYER  ...    PACE   W  SALARY_MILLIONS
0           0   1  Russell Westbrook  ...  102.31  46            26.50
1           1   2       James Harden  ...  102.98  54            26.50
2           2   3      Isaiah Thomas  ...   99.84  51            26.50
3           3   4      Anthony Davis  ...  100.19  31              NaN
4           4   6   DeMarcus Cousins  ...   97.11  30              NaN
5           5   7     Damian Lillard  ...   99.68  38            24.33
6           6   8       LeBron James  ...   98.38  51            30.96
7           7   9      Kawhi Leonard  ...   95.79  54            31.30

[8 rows x 13 columns]
   Unnamed: 0  Rk             PLAYER  ...    PACE   W  SALARY_MILLIONS
0           0   1  Russell Westbrook  ...  102.31  46            26.50
1           1   2       James Harden  ...  102.98  54            26.50
2           2   3      Isaiah Thomas  ...   99.84  51            26.50
3           3   4      Anthony Davis  ...  100.19  31              NaN
4           4   6   DeMarcus Cousins  ...   97.11  30              NaN
5           5   7     Damian Lillard  ...   99.68  38            24.33
6           6   8       LeBron James  ...   98.38  51            30.96
7           7   9      Kawhi Leonard  ...   95.79  54            31.30

[8 rows x 13 columns]
   Rk             PLAYER POSITION  AGE  ...   PIE    PACE   W  SALARY_MILLIONS
0   1  Russell Westbrook       PG   28  ...  23.0  102.31  46             26.5
1   2       James Harden       PG   27  ...  19.0  102.98  54             26.5
2   3      Isaiah Thomas       PG   27  ...  16.1   99.84  51             26.5
3   4      Anthony Davis        C   23  ...  19.2  100.19  31                ?
4   6   DeMarcus Cousins        C   26  ...  17.8   97.11  30            16.96
5   7     Damian Lillard       PG   26  ...  15.9   99.68  38            24.33
6   8       LeBron James       SF   32  ...  18.3   98.38  51            30.96
7   9      Kawhi Leonard       SF   25  ...  17.4   95.79  54                ?

[8 rows x 12 columns]

进程已结束,退出代码为 0
 

 

注意:

1.any与all是np的函数,并且注意 any搭配的是isnullall搭配的是notnull

2.isnull、notnull和fillna、dropna的写法

pd.~null(数据集)    ;    数据集.dropna()

3.注意查找+替换的写法,是 for i in data.columns,然后是data[i]...

http://www.lryc.cn/news/457429.html

相关文章:

  • 噪声分布 双峰,模拟函数 或者模拟方法 python人工智能 深度神经网络
  • 5个免费ppt模板网站推荐!轻松搞定职场ppt制作!
  • HTML5+Css3(背景属性background)
  • 高亚科技助力优巨新材,打造高效数字化研发项目管理平台
  • 用布尔表达式巧解数字电路图
  • 面试--开源框架面试题集合
  • 如何选择医疗器械管理系统?盘谷医疗符合最新版GSP要求
  • shell 脚本批量更新本地git仓库
  • Linux相关概念和易错知识点(12)(命令行参数、环境变量、本地变量)
  • wenserver中 一些常见的 错误码
  • 【电路笔记】-求和运算放大器
  • java实现桌面程序开机自启动
  • Vuex 使用实例
  • 深度分离卷积
  • JSONL 文件的检查和修订器
  • 输电线路悬垂线夹检测无人机航拍图像数据集,总共1600左右图片,悬垂线夹识别,标注为voc格式
  • 杭电合集小tips
  • Python的输入输出函数
  • 如何进行搭建与部署云主机?
  • Biomamba求职| 国奖+4篇一作SCI
  • Python 工具库每日推荐 【Pandas】
  • 电影选票选座系统|影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
  • matlab初学习记录
  • protobuf之Message
  • 【redis-06】redis的stream流实现消息中间件
  • 二、MySQL的数据目录
  • 2024.10月7~10日 进一步完善《电信资费管理系统》
  • vue2项目的路由使用history模式,刷新会导致页面404的问题
  • pytest框架之fixture测试夹具详解
  • 【浏览器】如何正确使用Microsoft Edge