pandas打乱数据集

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打乱数据集(测试)

import pandas as pd

1、sample方法

In [8]:
data = pd.read_csv('./iris.data',header=None)
data
Out[8]:
 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 [9]:
data=data.sample(frac=1.0)#打乱所有数据
data
Out[9]:
 01234
111 6.4 2.7 5.3 1.9 Iris-virginica
16 5.4 3.9 1.3 0.4 Iris-setosa
6 4.6 3.4 1.4 0.3 Iris-setosa
41 4.5 2.3 1.3 0.3 Iris-setosa
31 5.4 3.4 1.5 0.4 Iris-setosa
... ... ... ... ... ...
108 6.7 2.5 5.8 1.8 Iris-virginica
21 5.1 3.7 1.5 0.4 Iris-setosa
146 6.3 2.5 5.0 1.9 Iris-virginica
70 5.9 3.2 4.8 1.8 Iris-versicolor
24 4.8 3.4 1.9 0.2 Iris-setosa

150 rows × 5 columns

为了结果的复现

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

In [19]:
data = pd.read_csv('./iris.data',header=None)
data=data.sample(frac=1.0,random_state=11)#打乱所有数据
data
Out[19]:
 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

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

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]:
data=data.sample(frac=1.0)#打乱所有数据
data=data.reset_index(drop=True) #打乱后的数据index也是乱的,用reset_index重新加一列index,drop=True表示丢弃原有index一列
data
Out[7]:
 01234
0 5.5 2.3 4.0 1.3 Iris-versicolor
1 6.7 3.0 5.0 1.7 Iris-versicolor
2 5.6 2.9 3.6 1.3 Iris-versicolor
3 7.7 2.8 6.7 2.0 Iris-virginica
4 5.4 3.0 4.5 1.5 Iris-versicolor
... ... ... ... ... ...
145 6.3 3.3 6.0 2.5 Iris-virginica
146 6.2 2.2 4.5 1.5 Iris-versicolor
147 4.7 3.2 1.6 0.2 Iris-setosa
148 5.7 2.6 3.5 1.0 Iris-versicolor
149 5.4 3.9 1.7 0.4 Iris-setosa

150 rows × 5 columns

In [ ]:
 

三、pandas打乱数据集(参照)

转自或参考:pandas打乱数据
https://blog.csdn.net/qq_24367797/article/details/86676160

在机器学习中,拿到一堆训练数据,一般会我们需要先将数据打乱,使数据随机排序,然后在进行切分,需要将数据切分成训练集、交叉验证集和测试集,在监督学习中还要切分出属性集和标签集。
(注:df代表一个DataFrame)

1.打乱数据

df=df.sample(frac=1.0)#打乱所有数据

df=df.reset_index(drop=True)#打乱后的数据index也是乱的,用reset_index重新加一列index,drop=True表示丢弃原有index一列

2.切割数据

train=df.iloc[:a]#取数据的前a行为训练集

x_train=train.iloc[:,:b]#取训练集的前b列为属性集

y_train=train.iloc[:,b:]#取训练集的最后一列标签集

 
我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
博主25岁,前端后端算法大数据人工智能都有兴趣。
大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
聊技术,交朋友,修心境,qq404006308,微信fan404006308
26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
人工智能群:939687837

作者相关推荐

原文地址:https://www.cnblogs.com/Renyi-Fan/p/13659651.html