【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理

python数据分析-数据清洗与整理

又开始我的好好学习之旅,这周学习数据分析,居老师日常动力!

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理

今天要跟着罗罗攀(公众号:luoluopan1)学pandas数据清洗、合并、重塑以及字符串处理,数据均来自罗罗攀,敲棒~

1.数据清洗

处理缺失值

第一步:找出缺失值 主要通过 isnullnotnull方法返回 布尔值来判断什么位置有缺失值 (注:使用juypter notebok)

from pandas import DataFrame,Series
    import pandas as pd
    import numpy as np
    df = DataFrame([[3,4,5],[1,6,np.nan],['xxj','xf',np.nan],[np.nan,'a','b']])
    df.isnull()
    df.notnull()

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理
df.isnull().sum()
    df.isnull().sum().sum()

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理
df2 = DataFrame(np.arange(12).reshape(3,4))
    df2[3]=np.nan
    df2.iloc[2,:]=np.nan
    df2.dropna(how='all')

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理
df2.dropna(how='all',axis=1)

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理
df.fillna(0)

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理
df.fillna?

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理

移除重复数据

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理

替换值

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理

函数

map:将函数套用在Series的 每个元素中; apply:将函数要用在DataFrame的行和列上; applymap:讲函数套用在DataFrame的每个元素上 这里可以用map,也可以用apply

【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理
data = {
         'name':['张三','李四','王五','张三'],
        'math':[78,89,94,56]
    }
    df = DataFrame(data)

    def f(x):
        if x>= 90:
            return '棒!'
        elif 70检测异常值通常使用可视化来看不正常的数据,但不代表所有离群点都是异常值,可能他本来就是这样的 通常会用散点图来观察plot(kind='scatter') 虚拟变量在机器学习中,只有数值型的数据才能被学习,对于一些分类变量则需要转换成虚拟变量(也就是0,1矩阵,有是1,没有是0),通过get_dummies函数即可实现    df = DataFrame({
        '朝向':['东','南','西','东','北','东'],
        '价格':[1200,2300,2100,2900,1400,5600]
    })
    pd.get_dummies(df['朝向']) 对于多类别的数据而言,需要通过函数来解决,dummies没有办法直接处理    dummies = df2['朝向'].apply(lambda x : Series(x.split('/')).value_counts())
    dummies = dummies.fillna(0).astype(int)
    dummies2.数据合并和重塑merge合并通过merge函数按照一个或多个键将两个DataFrame按行合并起来 连接方式有:inner内连接,left左连接,right右连接,outer外连接 merge默认是inner,即返回的为交集,只连接都有的值  可以指定按什么键链接    pd.merge(amount,price,on='fruit')
    pd.merge(amount,price,left_on='fruit2',right_on='fruit1') 不同的连接方式:  以上是多对一的连接,因为price的fruit都是唯一值,如果是多对多,则会出现笛卡尔积  可以通过多个键进行合并  合并时可能存在重名,默认操作是加后缀 _x 和 _y 我们也可以利用 suffixes 进行自定义  可能连接的键是在DataFrame的索引上,可通过 left_index=True 或者 right_index=True 来指定索引作为连接键  DataFrame有join方法,可以按索引合并  注:列表名不能一样,这里是value1和value2,如果一样会报错concat连接如果合并的数据没有连接键,则不能使用 merge ,可以使用 concat 方法 默认情况下concat是axis=0,即垂直连接进行堆积  也可以水平连接  这样进行连接,在pd里会生成DataFrame,类似于外连接 concat只有内连接和外连接,通过join='inner'实现内连接  通过join_axes=[]来改变索引的顺序  连接对象在结果中是无法分开的,可通过keys参数给连接的对象创建一个层次化索引  如果按列进行连接,keys就成了列索引 combine_first合并如果需要合并的两个DataFrame存在重复的列索引,可以使用combine_first方法,类似于打补丁。 4. 数据重塑两个常用方法:stack方法将DF的列"旋转"为行,unstack方法将DF的行"旋转"为列    df = DataFrame(np.arange(9).reshape(3,3),
                  index=['a','b','c'],
                  columns=['one','two','three'])
    df.index.name = 'alpha'
    df.columns.name = 'number'
    result = df.stack()
    result df.unstack是互逆的 默认下,数据重塑操作都是最内层的,也可以通过级别的编号和名称制定其他级别进行重塑  数据重塑的操作是最内层的,操作结果也是使旋转轴位于最低级别 3. 字符串处理字符串方法,通过使用pandas中str属性  字符串处理还可以用正则表达式 4. 综合案例第一步:数据来源 Iris(鸢尾花卉)数据  第二步:定义问题 按照鸢尾花特征分出鸢尾花的分类 第三步:清洗数据 (1)检查数据是否有异常 对数据进行简单描述,用describe()函数  通过unique函数检查类别有几种(数据被修改过方便做练习——《从零开始学python数据分析》) 应该是三种类别,这里有5种,可以发现类别的名字写错了,应该是Iris_setosa,Iris_virginica,Iris_versicolor这三种。  对原始数据进行修改    iris_data.loc[iris_data['class']=='versicolor','class']='Iris-versicolor'
    iris_data.loc[iris_data['class']=='Iris-setossa','class']='Iris-setosa'    sns.pairplot(iris_data,hue='class') 先观察第一列:有几个Iris_versicolor样本中的sepal_length_cm偏离了大部分数据  切数据均小于0.1,通过索引选取Iris_versicolor样本中sepal_length_cm值小于0.1的数据,且假设这些数据是因为单位设置问题,即*100    iris_data.loc[(iris_data['class']=='Iris-versicolor') & (iris_data['sepal_length_cm'] < 0.1),'sepal_length_cm'] *=100
    iris_data.loc[(iris_data['class']=='Iris-versicolor')] 观察第二行:一个Iris_setosa样本的sepal_width_cm偏离了大部分的点  通过对Iris_setosa的花萼宽度回执直方图进行观察  为了观察的更仔细,可以发现异常值都大于2.5cm,所以先把小于2.5cm的过滤掉  (2)检查数据是否有缺失 可以发现其中花瓣宽度有5条缺失值  把缺失值删除掉  注:inplace是指在原始数据进行修改 最后对清洗好的数据进行保存,一遍后续的数据探索  第四步:数据探索 还是利用之前的散点矩阵代码,对新的数据进行可视化  还可以绘制其他的图形,如直方图

Original: https://blog.csdn.net/marraybug/article/details/118341877
Author: marraybug
Title: 【python数据分析】-数据清洗与整理python数据分析-数据清洗与整理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/741102/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【笔记】PyTorch快速入门:基础部分合集

    Tensors Tensors贯穿PyTorch始终 和多维数组很相似,一个特点是可以硬件加速 有很多方式 直接给值 data = [[1,2],[3,4]] x_data = t…

    Python 2023年10月28日
    023
  • Django创建子应用和模型-Day2

    Django创建子应用和模型 构建目录结构 一个项目往往有许多子模块、媒体文件、静态资源文件等,为了管理好项目,在构建项目的时候需要创建不同文件目录方便编码和管理。 myapps:…

    Python 2023年8月6日
    039
  • 数据分析与展示-Pandas入门

    Pandas是Python第三方库,提供高性能易用数据类型和分析工具。Pandas基于NumPy实现,常与NumPy和Matplotlib一同使用。pandas的导入: impor…

    Python 2023年8月7日
    041
  • CTF BugKu平台—(Web篇①)

    Simple_SSTI_1: 最近也是刚入门web 也是小白一枚 ,写点自己得做题思路和经验,有不好得地方也请大家反馈和监督。 首先先看一下源代码,这句话得意思是让我们传参flag…

    Python 2023年8月11日
    074
  • pandas crosstab 输出结果在一行_Pandas 使用入门

    Pandas 使用入门 Pandas 数据基础 包含两种基本类型: 和. 是一个数据表格,而 可以看作是 的一列. 如何导入数据 方法一:通过词典导入 第一种导入的方法是把数据放在…

    Python 2023年8月8日
    065
  • 采用MATLAB对正弦信号,语音信号进行生成、采样和恢复,利用MATLAB工具箱对混杂噪声的音频信号进行滤波

    ; 采用MATLAB对正弦信号,语音信号进行生成、采样和内插恢复,利用MATLAB工具箱对混杂噪声的音频信号进行滤波 一、正弦信号的采样与重建 要求:固定采样频率500 kHz,分…

    Python 2023年10月9日
    093
  • Scrapy_redis框架的概念作用和流程

    当爬取的网站的数据量非常庞大的时候,再使用之前的Scrapy框架速度就会有点偏慢,这时可以使用分布式来快速的爬取大量的数据。 1. 分布式是什么 分布式就是不同的节点(服务器,ip…

    Python 2023年10月5日
    033
  • 小白之Python基础(三)

    列表和元组 1、列表:最常用的 Python 数据类型(可变的数据类型) 1)列表是一个值,它包含多个值构成的序列; 2)通过[ ]或list()创建的有序元素的集合; 3)表项(…

    Python 2023年6月12日
    059
  • 【python数据分析】:数据预处理之数据标准化

    数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。 在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于…

    Python 2023年8月17日
    041
  • python的numpy的array多维数组的括号数怎么看?

    PS:个人学习过程中的学习记录,不敢保证全对,请甄别看待,谢谢。 3.结合1和2链接文章,对下面的多维数组进行扒皮处理: 一维数组。在Numpy中都表现为:(x,)。 a = np…

    Python 2023年8月28日
    049
  • python对postgresql数据库进行批量高效操作

    这里使用psycopg2库对postgresql进行批量的增删改查操作,批量操作可以使用 方法。其中 的效率最差,不建议使用, 次之, 效率最高。 executemany 与 ex…

    Python 2023年8月6日
    051
  • pandas处理excel表格

    需求:1.对特定的合并单元格,进行填充2.将某一列为空的一行删除3.将某一列出现”同4″的那一行删去,保留类似”xml相同”,&#8…

    Python 2023年8月18日
    042
  • Django管理后台

    目录 第一种注册model的方法 认识后台管理页面 第二种注册model的方法 ModelAdmin的常用属性 利用actions丰富动作工具栏 利用list_display修改显…

    Python 2023年8月3日
    051
  • Django查询数据库操作详解(一)

    Django查询数据库操作详解(一) 在 web 开发过程中,Django 与后台数据库的交互是必不可少的一项,也是实现业务逻辑所需数据的重要方式,所以 Django 的表查询操作…

    Python 2023年8月6日
    070
  • python:矩阵的基本运算

    一、Python 矩阵基本运算 引入 numpy 库 import numpy as np python矩阵操作 1)使用 mat 函数创建一个 2X3矩阵 a = np.mat(…

    Python 2023年8月30日
    051
  • python、pycharm安装步骤

    PyCharm安装过程记录 1. python环境安装 python下载地址:https://www.python.org/安装python编译环境,参考视频:https://ww…

    Python 2023年9月25日
    042
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球