一、总结
一句话总结:
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]:
| 0 | 1 | 2 | 3 | 4 |
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]:
| 0 | 1 | 2 | 3 | 4 |
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]:
| 0 | 1 | 2 | 3 | 4 |
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]:
| 0 | 1 | 2 | 3 | 4 |
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]:
| 0 | 1 | 2 | 3 | 4 |
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打乱数据集(参照)
在机器学习中,拿到一堆训练数据,一般会我们需要先将数据打乱,使数据随机排序,然后在进行切分,需要将数据切分成训练集、交叉验证集和测试集,在监督学习中还要切分出属性集和标签集。
(注: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;有各种前端、后端、算法、大数据、人工智能等课程。
人工智能群:939687837
作者相关推荐
感悟总结
其它重要感悟总结
感悟总结200813 最近心境200830 最近心境201019 201218-210205