基于pandas数据清洗的实现示例
作者:写代码的大学生
数据清洗是数据科学和数据分析中非常重要的一个步骤,本文主要介绍了基于pandas的数据清洗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
数据清洗是数据科学和数据分析中非常重要的一个步骤。它指的是在数据分析之前,对数据进行预处理,以确保数据的质量和一致性。使用Python的pandas库进行数据清洗是一种常见的做法,因为pandas提供了丰富的数据操作和清洗功能。
1.导入需要的库
import pandas as pd from pandas import DataFrame import numpy as np
2.处理丢失数据
有两种丢失数据:
- None
- np.nan(NaN)
为什么在数据分析中需要用到的是浮点类型的空而不是对象类型?
- 数据分析中会常常使用某些形式的运算来处理原始数据,如果原数数据中的空值为NAN的形式,则不会干扰或者中断运算。
- NAN可以参与运算的
- None是不可以参与运算
df = DataFrame(data=np.random.randint(0,100,size=(7,5))) df.iloc[2,3] = None df.iloc[4,2] = np.nan df.iloc[5,4] = None df
运行结果为:
3.pandas处理空值操作
- isnull
- notnull
- any
- all
- dropna
- filln
#哪些行中有空值 #any(axis=1)检测哪些行中存有空值 df.isnull().any(axis=1) #any会作用isnull返回结果的每一行 #true对应的行就是存有缺失数据的行
运行结果:
df.notnull() df.notnull().all(axis=1) #将布尔值作为源数据的行索引 df.loc[df.notnull().all(axis=1)] #获取空对应的行数据 df.loc[df.isnull().any(axis=1)] #获取空对应行数据的行索引 indexs = df.loc[df.isnull().any(axis=1)].index indexs df.drop(labels=indexs,axis=0)
3.案例分析
数据说明:
- 数据是1个冷库的温度数据,1-7对应7个温度采集设备,1分钟采集一次。
数据处理目标:
- 用1-4对应的4个必须设备,通过建立冷库的温度场关系模型,预估出5-7对应的数据。
- 最后每个冷库中仅需放置4个设备,取代放置7个设备。
- f(1-4) --> y(5-7)
数据处理过程:
- 1、原始数据中有丢帧现象,需要做预处理;
- 2、matplotlib 绘图;
- 3、建立逻辑回归模型。
无标准答案,按个人理解操作即可,请把自己的操作过程以文字形式简单描述一下,谢谢配合。
测试数据为testData.xlsx
data = pd.read_excel('./data/testData.xlsx').drop(labels=['none','none1'],axis=1) data
运行结果为:
data.shape #删除空对应的行数据 data.dropna(axis=0).shape df = DataFrame(data=np.random.randint(0,100,size=(8,6))) df.iloc[1] = [1,1,1,1,1,1] df.iloc[3] = [1,1,1,1,1,1] df.iloc[5] = [1,1,1,1,1,1] df #检测哪些行存有重复的数据 df.duplicated(keep='first') df.loc[~df.duplicated(keep='first')] #异步到位删除 df.drop_duplicates(keep='first') df = DataFrame(data=np.random.random(size=(1000,3)),columns=['A','B','C']) df.head() #制定判定异常值的条件 twice_std = df['C'].std() * 2 twice_std df.loc[~(df['C'] > twice_std)]
运行结果:
到此这篇关于基于pandas数据清洗的实现示例的文章就介绍到这了,更多相关pandas 数据清洗内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!