数据分析之数据处理(一)

一、缺失值处理

  • 数据确实是主要包括记录缺失和字段信息缺失等情况,其对数据分析会有较大的影响,导致结果不确定性更加显著
  • 缺失值的处理:删除记录/数据插补/不处理
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
# %matplotlib inline# step 1 创建数据
s=pd.Series([12,33,45,23,np.nan,np.nan,66,54,np.nan,99])
df=pd.DataFrame({'value1':[12,33,45,23,np.nan,np.nan,66,54,np.nan,99,190],'value2':['a','b','c','d','e',np.nan,np.nan,'f','g',np.nan,'g']})
print('\n*******s*******\n',s)
print('\n*******df*******\n',df)

运行结果

#step 2 判断是否有缺失值数据:isnull notnull
# isnull (缺失值为true,非缺失值为false)
# notnull(缺失值为false,非缺失值为true)
print('*******Series********\n',s.isnull())#Series直接判断是否是缺失值,返回一个series
print('*******Dataframe********\n',df.notnull())#Dataframe直接判断是否是缺失值返回一个series
print('*******Value1********\n',df['value1'].notnull())#通过索引判断

运行结果


# step 3 筛选非缺失值
s2=s[s.isnull()==False]
df2=df[df['value2'].notnull()]
print('\n*******s2*******\n',s2)
print('\n*******df2*******\n',df2)

运行结果

# step 4 删除缺失值-dropna
s.dropna(inplace=True)
df2=df['value1'].dropna()
print('\n*******s删除缺失值*******\n',s)
print('\n*******df删除缺失值*******\n',df2)

注:drop方法可以直接用于series和dataframe,inplace参数默认为false(生成新的值)

运行结果

# step 5 填充缺失数据——fillna
# 在缺失值还没有删除之前进行
# fillna(value=None,method=None,axis=None,inplace=True,linit=None,downcast=None,**kwargs) value 表示填充值
s.fillna(0,inplace=True)
print('\n*******s填充缺失数据*******\n',s)
#pad/ffill表示用之前的数据填充,backfill/bfill表示用之后的数据填充
df['value1'].fillna(method='pad',inplace=True)
print('\n*******df填充缺失数据*******\n',df)

运行结果

# step 6 替换缺失数据——replace
# replace(to_replace=None,value=None,inplace=False,limit=None,regex=False,method='pad',axis=None)to_replace表示被替换的值,value表示替换值
s = pd.Series([1,1,2,2,3,4,5,np.nan,np.nan,66,54,np.nan,99])s.replace(np.nan,'缺失数据',inplace=True)
print('\n*******s替换缺失数据*******\n',s)
s.replace([1,2,3],np.nan,inplace=True)#多值用nan代替
print('\n*******s多值替换缺失数据*******\n',s)

运行结果

# step 7 缺失值插补:均值/中位数/众数插补,临近插补,插值法
# (1)均值、中位数、众数插补
s = pd.Series([1,2,3,np.nan,3,4,5,5,np.nan,6,7,2,np.nan,3,4])# 创建数据
print('*******s*******\n',s)
# 分别求出均值、中位数、众数
u=s.mean()#均值
me=s.median()#中位数
mod=s.mode()#众数
print('\n均值为:%.2f, 中位数为:%.2f' % (u,me))
print('\n众数为:', mod.tolist())
s.fillna(u,inplace=True)
print('\n*******均值填充*******\n',s)

运行结果


# (2)临近值插补
s = pd.Series([1,2,3,np.nan,3,4,5,5,np.nan,np.nan,6,6,7,12,2,np.nan,3,4])#创建数据
# print('*******s*******\n',s)
s.fillna(method='ffill',inplace=True)
print('\n*******临近值插补*******\n',s)#用前置插补

运行结果

from scipy.interpolate import lagrange
# (3)插值法——拉格朗日插值法
x=[3,6,9]
y=[10,8,4]
print(lagrange(x,y))
print(type(lagrange(x,y)))
# type的输出值为的是多项式的n个系数,这里输出3个值,分别为a0,a1,a2
# y = a0 * x**2 + a1 * x + a2 → y = -0.1111* x**2 + 0.3333* x + 10
print('\n插值为:%.2f'%lagrange(x,y)(10))

运行结果

自学自用,希望可以和大家积极沟通交流,小伙伴们加油鸭,如有错误还请指正,不喜勿喷

数据分析之数据处理(一)相关推荐

  1. python快速入门神器 知乎_python数据分析之数据处理终极神器

    一行代码一行代码带着敲,通过实战讲解如何进行数据预处理,在实战中学习,最快的学习方法,精华!讲解的非常详细简单,学不会,全额退款哦!!! 数据分析之数据处理终极神器课程目录如下: 1数据框行与列的选择 ...

  2. 数据分析之数据处理(四)

    数据分析之数据处理(四) 一.数据归一化/标准化 数据的标准化是数据按比例缩放,使之落入一个小的特定区间.在某些比较和评论的指标处理汇总京城会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不 ...

  3. chatgpt赋能python:Python是一门强大的编程语言,它在数据分析和数据处理方面广受欢迎。在网站开发中,Python也被广泛应用。它可以用于开发Web应用、爬虫、自动化测试等。此外,Pyt

    Python是一门强大的编程语言,它在数据分析和数据处理方面广受欢迎.在网站开发中,Python也被广泛应用.它可以用于开发Web应用.爬虫.自动化测试等.此外,Python也可以用于创建表格.在本文 ...

  4. 合作项目 : 人工智能专业相关职位数据分析 (爬虫+数据处理)

    1 项目背景 2 Scrapy 爬取51job具体信息 3 数据清洗 3.1 导入csv 3.2 处理tags,提取其中有效信息 3.2.1 处理tags中数据数目不一致,规整数据信息 3.2.2 处 ...

  5. 数据分析:数据处理篇1

    数据的写入与读取 数据的写入 .csv文件写入 .xlsx文件写入 数据的读取 .csv文件读取 .xlsx文件读取 数据的使用 随机获取信息 数据去重 在做数据分析的时候,Excel表格是一个常用的 ...

  6. 用Python做数据分析之数据处理及数据提取

    1.数据预处理 第四部分是数据的预处理,对清洗完的数据进行整理以便后期的统计和分析工作.主要包括数据表的合并,排序,数值分列,数据分组及标记等工作. 1)数据表合并 首先是对不同的数据表进行合并,我们 ...

  7. 利用SPSS做数据分析②之数据处理2

    接着上一篇数据处理的内容,我们今天一起来学习[数据合并.分组.标准化]: 1.数据合并(记录合并) 记录合并也叫纵向合并,是将具有共同的数据字段.结构,不同的数据表记录,合并到一个新的数据表中. 现在 ...

  8. python数据分析--金融数据处理

    数据来源:和鲸社区-Numpy+Pandas数据处理·第四关 主要内容: 缺失数据 查看每列 数据的缺失情况 输出每列具体缺失的行数 删除所有存在缺失值的行 绘制折线图 收盘价折线图 收盘价开盘价折线 ...

  9. 缩尾处理(winsorize)-数据分析、数据处理

    文章目录 原理浅析 一个例子说清楚怎么用Python实现 一个正态分布缩尾处理的例子 see also 原理浅析 和经常听到的"去掉一个最低分去掉一个最高分"操作类似,缩尾处理相当 ...

最新文章

  1. 最新县及县以上行政区划代码(截止2010年12月31日)
  2. java 页面 分离 实现_JavaBean实现JSP页面和代码分离
  3. 原生js中如果有多个onload事件解决方案
  4. java同步关键字_Java中synchronized关键字修饰方法同步的用法详解
  5. mkfontscale没有这个命令_那些实用的小命令
  6. React Native之react-native bundle --platform android --dev false --entry-file index.js --bundle失败
  7. fillrect不填充被覆盖的区域 mfc_quot;条带覆盖quot;猜想的中二证明:quot;球面条线覆盖或点覆盖quot;积分π...
  8. javaScript 中 call 函数的用法说明
  9. jsp后台批量导入excel表格数据到mysql中_运用java解析excel表,拿到表中的数据并批量插入数据库...
  10. Element穿梭框Transfer与进度条组件绑定
  11. Python内置函数(10)——float
  12. linux添加自己的键盘映射,linux下修改键盘映射
  13. 如何下载安装weka包
  14. 扫线法快速判断凹多边形相交
  15. 不确定性管理,更需要领导力
  16. matlab高斯光束加上随机相位,随机调制光束的传输特性
  17. JavaScript高级编程——BOM
  18. 【无人机三维路径规划】基于帝国企鹅算法实现无人机三维路径规划附matlab代码
  19. 3.Tom猫的实现(帧动画播放)
  20. 微信打开链接提示用浏览器打开

热门文章

  1. 智能玩具存在的安全隐患须知
  2. Python出租车GPS数据的路网匹配(TransBigData+leuvenmapmatching)
  3. 2021年前端会有什么新变化?
  4. 使用easypoi操作excel
  5. python3 分句
  6. iPhone X电池性能如何:双电池与无线充电的博弈
  7. 万能数据库查询分析器使用技巧之(十一)
  8. 趣味js之斗牛算法详解
  9. iOS App各种路径
  10. 大乘起信论别记(本)