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
												
											Pandas排列和随机采样的更多相关文章
- Pandas随机采样
		
实现对DataFrame对象随机采样 pandas是基于numpy建立起来的,所以numpy大部分函数可作用于DataFrame和Series数据结构. numpy.random.permutatio ...
 - 11-Pandas之排序(df.sort_index()、df.sort_values()、随机重排、随机采样)
		
排序是一种索引机制的一种常见的操作方法,也是Pandas重要的内置运算,主要包括以下3种方法: 排序方法 说明 sort_values() 根据某一列的值进行排序 sort_index() 根据索引进 ...
 - 关于乱序(shuffle)与随机采样(sample)的一点探究
		
最近一个月的时间,基本上都在加班加点的写业务,在写代码的时候,也遇到了一个有趣的问题,值得记录一下. 简单来说,需求是从一个字典(python dict)中随机选出K个满足条件的key.代码如下(py ...
 - 随机采样和随机模拟:吉布斯采样Gibbs Sampling实现高斯分布参数推断
		
http://blog.csdn.net/pipisorry/article/details/51539739 吉布斯采样的实现问题 本文主要说明如何通过吉布斯采样来采样截断多维高斯分布的参数(已知一 ...
 - 随机采样和随机模拟:吉布斯采样Gibbs Sampling实现文档分类
		
http://blog.csdn.net/pipisorry/article/details/51525308 吉布斯采样的实现问题 本文主要说明如何通过吉布斯采样进行文档分类(聚类),当然更复杂的实 ...
 - hive随机采样
		
hive> select * from account limit 10;OKaccount.accountname account.accid account.platid ac ...
 - 使用 numpy.random.choice随机采样
		
使用 numpy.random.choice随机采样: 说明: numpy.random.choice(a, size=None, replace=True, p=None) 示例: >> ...
 - pandas中的随机排序和抽样
		
1.随机重排序 使用take()随机排序 如: df.take([54]) #采取索引为54的数据 可以借助np.random.permutation()函数随机排序 permutation()函 ...
 - 利用shuf对数据记录进行随机采样
		
最近在用SVM为分类器做实验,但是发现数据量太大(2000k条记录)但是训练时间过长...让我足足等了1天的啊!有人指导说可以先进行一下随机采样,再训练,这样对训练结果不会有太大影响(这个待考证).所 ...
 
随机推荐
- python学习之路04——列表和字典
			
列表和字典 python中的可变数据类型有:列表和字典 不可变类型:数字,字符串,元组 今天先讲列表和字典 一.列表 1.概念: 变量:使用变量存储数据,但是,变量存储数据每次只能存储一个数据 问题: ...
 - [cf1038E][欧拉路]
			
http://codeforces.com/contest/1038/problem/E E. Maximum Matching time limit per test 2 seconds memor ...
 - vc6.0使用
			
1.文件结构 工作空间dsw 工程1 Source file .cpp,main Header file .h Resource files 工程2 ...
 - eclipse中,将springboot项目打成jar包
			
1.右击项目,选择Run As - Maven clean 2.右击项目,选择Run As - Maven install 3.成功后 会在项目的target文件夹下生成jar包 4.将打包好的jar ...
 - [c#]_ELVE_Message多功能用法
			
1. 当要显示如图3个按钮时,并要获得单击不同按钮的进行不同的相应时,可以在MessageBoxButtons后面添加一个.(应该英文的点,此处为了醒目,用中文代替)可以看到提示框下方需要几个按 ...
 - Xshell添加ssh隧道SOCKS代理
			
Xshell是一个功能强大的终端模拟器,支持SSH,SFTP.TELNET.RLOGIN和SERIAL 下载地址:http://www.netsarang.com/products/xsh_overv ...
 - Maven+Spirng+Mybatis+CXF搭建WebService服务
			
https://jingyan.baidu.com/article/39810a23b1de2fb637fda66c.html
 - IIS 添加 MIME
			
参考:https://blog.brain1981.com/727.html 在项目的 Web.Config 里下添加如下段落即可: <?xml version="1.0" ...
 - Oracle 语句整理
			
1 查出列当中重复的值 select ip2,count(*) from vm_info group by ip2 having count(*)>1 期中ip2为列名 vm_inf ...
 - flutter学习地址
			
Flutter - 不一样的跨平台解决方案: 关于Flutter,你想知道的都在这里了!: Flutter 时间表 2015 年 4 月,Flutter(最初代号 Sky)在 Dart Devel ...