基于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)]

 运行结果:

 

 

 

 

 

相关推荐

  1. pandas数据清洗

    2024-07-23 06:14:02       40 阅读
  2. 数据分析Pandas专栏---第一章<数据清洗

    2024-07-23 06:14:02       56 阅读
  3. 【Python编程+数据清洗+Pandas库+数据分析】

    2024-07-23 06:14:02       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 06:14:02       143 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 06:14:02       157 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 06:14:02       132 阅读
  4. Python语言-面向对象

    2024-07-23 06:14:02       142 阅读

热门阅读

  1. python入门课程Pro(2)--循环

    2024-07-23 06:14:02       23 阅读
  2. 深入剖析Tomcat整体架构

    2024-07-23 06:14:02       28 阅读
  3. CCF GESP Python编程 二级认证真题 2024年6月

    2024-07-23 06:14:02       33 阅读
  4. Android5.1 NAT功能的iptables规则

    2024-07-23 06:14:02       30 阅读
  5. C语言-预处理详解

    2024-07-23 06:14:02       29 阅读
  6. ios CCUIHilightedLabel.m

    2024-07-23 06:14:02       30 阅读
  7. 动态内存管理

    2024-07-23 06:14:02       20 阅读
  8. linux协议栈之FDB表

    2024-07-23 06:14:02       25 阅读
  9. 记录贴-VUE相关

    2024-07-23 06:14:02       27 阅读
  10. ios CCUIImage.m

    2024-07-23 06:14:02       27 阅读
  11. unity和安卓的so文件联合使用

    2024-07-23 06:14:02       27 阅读