pandas庫疑難問題---1、pandas打亂數據集


pandas庫疑難問題---1、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打亂數據集

博客對應課程的視頻位置:1、pandas打亂數據集-范仁義-讀書編程筆記
https://www.fanrenyi.com/video/39/360

 

import pandas as pd 

一、sample方法隨機打亂數據集

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]:
#設置frac=0.5表示隨機抽取50%的數據
data=data.sample(frac=1.0)#打亂所有數據 data 
Out[7]:
  0 1 2 3 4
36 5.5 3.5 1.3 0.2 Iris-setosa
43 5.0 3.5 1.6 0.6 Iris-setosa
93 5.0 2.3 3.3 1.0 Iris-versicolor
117 7.7 3.8 6.7 2.2 Iris-virginica
70 5.9 3.2 4.8 1.8 Iris-versicolor
... ... ... ... ... ...
66 5.6 3.0 4.5 1.5 Iris-versicolor
12 4.8 3.0 1.4 0.1 Iris-setosa
101 5.8 2.7 5.1 1.9 Iris-virginica
81 5.5 2.4 3.7 1.0 Iris-versicolor
2 4.7 3.2 1.3 0.2 Iris-setosa

150 rows × 5 columns

為了結果的復現

可以看到設置的種子一樣的時候,生成的隨機數是一樣的

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

二、reset_index方法可以重新設置index(打亂數據集之后)

In [10]:
data = pd.read_csv('./iris.data',header=None) data 
Out[10]:
  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 [11]:
data=data.sample(frac=1.0)#打亂所有數據 data 
Out[11]:
  0 1 2 3 4
69 5.6 2.5 3.9 1.1 Iris-versicolor
91 6.1 3.0 4.6 1.4 Iris-versicolor
20 5.4 3.4 1.7 0.2 Iris-setosa
19 5.1 3.8 1.5 0.3 Iris-setosa
114 5.8 2.8 5.1 2.4 Iris-virginica
... ... ... ... ... ...
82 5.8 2.7 3.9 1.2 Iris-versicolor
94 5.6 2.7 4.2 1.3 Iris-versicolor
73 6.1 2.8 4.7 1.2 Iris-versicolor
85 6.0 3.4 4.5 1.6 Iris-versicolor
65 6.7 3.1 4.4 1.4 Iris-versicolor

150 rows × 5 columns

In [12]:
data=data.reset_index(drop=True) #打亂后的數據index也是亂的,用reset_index重新加一列index,drop=True表示丟棄原有index一列 data 
Out[12]:
  0 1 2 3 4
0 5.6 2.5 3.9 1.1 Iris-versicolor
1 6.1 3.0 4.6 1.4 Iris-versicolor
2 5.4 3.4 1.7 0.2 Iris-setosa
3 5.1 3.8 1.5 0.3 Iris-setosa
4 5.8 2.8 5.1 2.4 Iris-virginica
... ... ... ... ... ...
145 5.8 2.7 3.9 1.2 Iris-versicolor
146 5.6 2.7 4.2 1.3 Iris-versicolor
147 6.1 2.8 4.7 1.2 Iris-versicolor
148 6.0 3.4 4.5 1.6 Iris-versicolor
149 6.7 3.1 4.4 1.4 Iris-versicolor

150 rows × 5 columns

In [ ]:
 
 
博客對應系列課程視頻位置:
1、pandas打亂數據集-范仁義-讀書編程筆記
https://www.fanrenyi.com/video/39/360
2、pandas切片操作-范仁義-讀書編程筆記
https://www.fanrenyi.com/video/39/379
3、loc方法和iloc方法的區別-范仁義-讀書編程筆記
https://www.fanrenyi.com/video/39/380
4、DataFrame類型轉換成Numpy中ndarray-范仁義-讀書編程筆記
https://www.fanrenyi.com/video/39/381
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM