zoukankan      html  css  js  c++  java
  • pandas库疑难问题---1、pandas打乱数据集

    pandas库疑难问题---1、pandas打乱数据集

    一、总结

    一句话总结:

    pandas可以用sample方法返回random sample,可以用reset_index方法reset打乱之后的index
    df=df.sample(frac=1.0) #打乱所有数据
    df=df.reset_index(drop=True) #打乱后的数据index也是乱的,用reset_index重新加一列index,drop=True表示丢弃原有index一列

    二、pandas打乱数据集

    博客对应课程的视频位置:1、pandas打乱数据集-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/360

    import pandas as pd
    

    一、sample方法随机打乱数据集

    In [6]:
    data = pd.read_csv('./iris.data',header=None)
    data
    
    Out[6]:
     01234
    0 5.1 3.5 1.4 0.2 Iris-setosa
    1 4.9 3.0 1.4 0.2 Iris-setosa
    2 4.7 3.2 1.3 0.2 Iris-setosa
    3 4.6 3.1 1.5 0.2 Iris-setosa
    4 5.0 3.6 1.4 0.2 Iris-setosa
    ... ... ... ... ... ...
    145 6.7 3.0 5.2 2.3 Iris-virginica
    146 6.3 2.5 5.0 1.9 Iris-virginica
    147 6.5 3.0 5.2 2.0 Iris-virginica
    148 6.2 3.4 5.4 2.3 Iris-virginica
    149 5.9 3.0 5.1 1.8 Iris-virginica

    150 rows × 5 columns

    In [7]:
    #设置frac=0.5表示随机抽取50%的数据
    data=data.sample(frac=1.0)#打乱所有数据
    data
    
    Out[7]:
     01234
    36 5.5 3.5 1.3 0.2 Iris-setosa
    43 5.0 3.5 1.6 0.6 Iris-setosa
    93 5.0 2.3 3.3 1.0 Iris-versicolor
    117 7.7 3.8 6.7 2.2 Iris-virginica
    70 5.9 3.2 4.8 1.8 Iris-versicolor
    ... ... ... ... ... ...
    66 5.6 3.0 4.5 1.5 Iris-versicolor
    12 4.8 3.0 1.4 0.1 Iris-setosa
    101 5.8 2.7 5.1 1.9 Iris-virginica
    81 5.5 2.4 3.7 1.0 Iris-versicolor
    2 4.7 3.2 1.3 0.2 Iris-setosa

    150 rows × 5 columns

    为了结果的复现

    可以看到设置的种子一样的时候,生成的随机数是一样的

    In [9]:
    data = pd.read_csv('./iris.data',header=None)
    data=data.sample(frac=1.0,random_state=11)#打乱所有数据
    data
    
    Out[9]:
     01234
    112 6.8 3.0 5.5 2.1 Iris-virginica
    145 6.7 3.0 5.2 2.3 Iris-virginica
    133 6.3 2.8 5.1 1.5 Iris-virginica
    56 6.3 3.3 4.7 1.6 Iris-versicolor
    111 6.4 2.7 5.3 1.9 Iris-virginica
    ... ... ... ... ... ...
    76 6.8 2.8 4.8 1.4 Iris-versicolor
    13 4.3 3.0 1.1 0.1 Iris-setosa
    81 5.5 2.4 3.7 1.0 Iris-versicolor
    91 6.1 3.0 4.6 1.4 Iris-versicolor
    80 5.5 2.4 3.8 1.1 Iris-versicolor

    150 rows × 5 columns

    二、reset_index方法可以重新设置index(打乱数据集之后)

    In [10]:
    data = pd.read_csv('./iris.data',header=None)
    data
    
    Out[10]:
     01234
    0 5.1 3.5 1.4 0.2 Iris-setosa
    1 4.9 3.0 1.4 0.2 Iris-setosa
    2 4.7 3.2 1.3 0.2 Iris-setosa
    3 4.6 3.1 1.5 0.2 Iris-setosa
    4 5.0 3.6 1.4 0.2 Iris-setosa
    ... ... ... ... ... ...
    145 6.7 3.0 5.2 2.3 Iris-virginica
    146 6.3 2.5 5.0 1.9 Iris-virginica
    147 6.5 3.0 5.2 2.0 Iris-virginica
    148 6.2 3.4 5.4 2.3 Iris-virginica
    149 5.9 3.0 5.1 1.8 Iris-virginica

    150 rows × 5 columns

    In [11]:
    data=data.sample(frac=1.0)#打乱所有数据
    data
    
    Out[11]:
     01234
    69 5.6 2.5 3.9 1.1 Iris-versicolor
    91 6.1 3.0 4.6 1.4 Iris-versicolor
    20 5.4 3.4 1.7 0.2 Iris-setosa
    19 5.1 3.8 1.5 0.3 Iris-setosa
    114 5.8 2.8 5.1 2.4 Iris-virginica
    ... ... ... ... ... ...
    82 5.8 2.7 3.9 1.2 Iris-versicolor
    94 5.6 2.7 4.2 1.3 Iris-versicolor
    73 6.1 2.8 4.7 1.2 Iris-versicolor
    85 6.0 3.4 4.5 1.6 Iris-versicolor
    65 6.7 3.1 4.4 1.4 Iris-versicolor

    150 rows × 5 columns

    In [12]:
    data=data.reset_index(drop=True) #打乱后的数据index也是乱的,用reset_index重新加一列index,drop=True表示丢弃原有index一列
    data
    
    Out[12]:
     01234
    0 5.6 2.5 3.9 1.1 Iris-versicolor
    1 6.1 3.0 4.6 1.4 Iris-versicolor
    2 5.4 3.4 1.7 0.2 Iris-setosa
    3 5.1 3.8 1.5 0.3 Iris-setosa
    4 5.8 2.8 5.1 2.4 Iris-virginica
    ... ... ... ... ... ...
    145 5.8 2.7 3.9 1.2 Iris-versicolor
    146 5.6 2.7 4.2 1.3 Iris-versicolor
    147 6.1 2.8 4.7 1.2 Iris-versicolor
    148 6.0 3.4 4.5 1.6 Iris-versicolor
    149 6.7 3.1 4.4 1.4 Iris-versicolor

    150 rows × 5 columns

    In [ ]:
     
     
    博客对应系列课程视频位置:
    1、pandas打乱数据集-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/360
    2、pandas切片操作-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/379
    3、loc方法和iloc方法的区别-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/380
    4、DataFrame类型转换成Numpy中ndarray-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/381
     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    DB2原因码7,解决方法
    打包项目成war包并部署到服务器上,项目运行一直显示加载中
    解决js中对象中属性是数组中对应元素,不能使用点数组元素(.数组[i])来获取value值来循环,属性不能是数组元素array[i]的问题
    javaweb项目中jsp的from表单提交action内容与web.xml的servlet-mapping对应
    Collection迭代器Iterator的使用
    使用switch计算出某年某月某日是今年的第几天,输出一直是当月天数
    DB2添加联合主键
    您的主机中的软件中止了一个已建立的连接
    java中在构造方法中修改线程名,修改失败原因(现已修改成功)
    String字符串加号的作用与基本数据类型加号的作用的区别
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13670325.html
Copyright © 2011-2022 走看看