zoukankan      html  css  js  c++  java
  • pandas 的df.smaple()抽样函数

    df.sample()就是抽样函数,参数如下:

    df.sample(n=None,frac=None,replace=Flase,weights=None,random_state=None,axis=None)

    参数说明:

    n:就是样本量,如果不写,就是抽一条数据

    frac:抽样比,就是样本量占全样本的比例,如frac=0.3  ,注意n和frac不能共存

    replace:是否放回,默认是不放回,如果有放回(replace=True)可以选择比df长度更多的元素回来

    weights:样本权重,自动归一化,可以以某一列为权重

    random_state:随机状态。就是为了保证程序每次运行得到的结果都一样

    axis:抽样维度,0是行,1是列,默认为0

    下面用iris数据做例子

    from sklearn.datasets import load_iris
    import pandas as pd
    import numpy as np
    
    iris=load_iris()
    df=pd.DataFrame(iris.data,columns=iris.feature_names)
    
    df.sample   #不带括号,全样本
    df.sample()   #抽一条数据
    df.sample(5)   #随机抽5条
    de.sample(n=5)  #可以写n=或者不写
    
    df.sample(frac=0.1)  #抽取比例为0.1
    df.sample(n=5,frac=0.1)   #报错ValueError: Please enter a value for `frac` OR `n`, not both
    
    df.sample(n=15,replace=True)   #有放回抽取15条数据
    df.sample(n=15,replace=True).index.is_unique   #查看有放回抽取的15条数据的索引是不是有重复
    len(df.sample(n=200,replace=True)),len(df)   #(200, 150)  # 有放回(replace=True)可以选择比df长度更多的元素回来
    
    df.sample(n=3,axis=1)  #对列抽样
    
    w=np.random.rand(df.shape[0])  #w是150个从0-1之间的随机数
    df.sample(n=3,weights=w)
    df.sample(n=3,weights=df['sepal width (cm)'])  #以某列为权重
    df.sample(n=3,weights=df['sepal width (cm)'].values)  #以某一列为权重,这在抽样理论中很常见--本质上是以这一列的列值为权重
    
    df.sample(n=3,random_state=3)  #设置了,每次程序运行的结果都一致
  • 相关阅读:
    C++STL中的unique函数解析
    STL中erase()的用法
    刷题技巧——简易哈希表的实现
    经典面试题目——找到第n个丑数(参考《剑指offer(第二版)》面试题49)
    C++中sort函数小结
    谈谈交叉验证法(个人小结)
    数字序列中某一位数字(《剑指offer》面试题44)
    求1~n整数中1出现的次数(《剑指offer》面试题43)
    2018年美团春招(第二批)题解
    C/C++中字符串和数字互转小结
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13329998.html
Copyright © 2011-2022 走看看