zoukankan      html  css  js  c++  java
  • Pandas排列和随机采样

    随机重排序

    import pandas as pd
    import numpy as np
    from pandas import Series
    
    df = pd.DataFrame(np.arange(5*4).reshape(5,4))
    df
    
        0	1	2	3
    0	0	1	2	3
    1	4	5	6	7
    2	8	9	10	11
    3	12	13	14	15
    4	16	17	18	19
    

    shuffle 的参数只能是 array_like,而 permutation 除了 array_like 还可以是 int 类型,如果是 int 类型,那就随机打乱 numpy.arange(int)。

    sampler = np.random.permutation(5)
    sampler
    
    array([1, 2, 0, 4, 3])
    

    shuffle 返回 None,这点尤其要注意,也就是说没有返回值,而 permutation 则返回打乱后的 array。

    list1 = [1,2,3,4,5]
    result = np.random.shuffle(list1)
    list1
    
    [2, 5, 4, 1, 3]
    
    df.take(sampler)
    
        0	1	2	3
    1	4	5	6	7
    2	8	9	10	11
    3	12	13	14	15
    0	0	1	2	3
    4	16	17	18	19
    
    # 随机采样,取前三行
    df.take(np.random.permutation(len(df))[:3])
    
        0	1	2	3
    4	16	17	18	19
    2	8	9	10	11
    3	12	13	14	15
    

    计算指标/哑变量

    将分类变量转换为哑变量矩阵或指标矩阵,如果DataFrame的某一列中含有K个不同的值,

    则可以派生出一个K列矩阵或DataFrame(其值全为1和0)

    df = pd.DataFrame({'key':['b','b','a','c','a','b'],
                        'data1':range(6)
                      })
    df
    
    	key	data1
    0	  b	  0
    1	  b	  1
    2	  a	  2
    3	  c	  3
    4	  a	  4
    5	  b	  5
    
    # 给列加上前缀,get_dummies的prefix参数可以实现该功能
    dummies = pd.get_dummies(df['key'],prefix='qianzui')
    dummies
    
     qianzui_a	qianzui_b	qianzui_c
    0	0	       1	     0
    1	0	       1	     0
    2	1	       0	     0
    3	0	       0	     1
    4	1	       0	     0
    5	0	       1	     0
    
    # Series对象是没有join方法的,必须是dataframe
    df[['data1']].join(dummies)
    
       data1	qianzui_a	qianzui_b	qianzui_c
    0	0	      0	           1	       0
    1	1	      0	           1	       0
    2	2	      1	           0	       0
    3	3	      0	           0	       1
    4	4	      1	           0	       0
    5	5	      0	           1	       0
    
  • 相关阅读:
    自定义动画(仿Win10加载动画)
    jquery 仿windows10菜单效果下载
    mac os+selenium2+Firefox驱动+python3
    mac os+selenium2+chrome驱动+python3
    mac 安装scrapy
    mac 查看系统位数
    ubuntu安装 mysqldb
    ubuntu安装常用软件
    scp 时出现permission denied
    ubuntu 安装git
  • 原文地址:https://www.cnblogs.com/lishi-jie/p/10064615.html
Copyright © 2011-2022 走看看