pandas打乱数据

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

第一个实现方法:

最简单的方法就是采用pandas中自带的 sample这个方法。

假设df是这个DataFrame

df.sample(frac=1)
这样对可以对df进行shuffle。其中参数frac是要返回的比例,比如df中有10行数据,我只想返回其中的30%,那么frac=0.3。
有时候,我们可能需要打混后数据集的index(索引)还是按照正常的排序。我们只需要这样操作

df.sample(frac=1).reset_index(drop=True)

切割数据

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

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

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

第二个实现方法:

sklearn(机器学习的库)中也有shuffle的方法。

from sklearn.utils import shuffle

df = shuffle(df)

第三个实现方法:

numpy库中也有进行shuffle的方法

df.iloc[np.random.permutation(len(df))]
发布了289 篇原创文章 · 获赞 163 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/Suyebiubiu/article/details/102981689