码迷,mamicode.com
首页 > 其他好文 > 详细

Pandas排列和随机采样

时间:2018-12-04 17:18:47      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:amp   必须   返回值   5*   class   注意   pandas   排列   shu   

随机重排序

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排列和随机采样

标签:amp   必须   返回值   5*   class   注意   pandas   排列   shu   

原文地址:https://www.cnblogs.com/lishi-jie/p/10064615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!