如何将数据帧拆分为多个数据帧,其中每个数据帧包含相等但随机的数据

时间:2017-05-17 17:48:56

标签: pandas

如何将数据帧拆分为多个数据帧,其中每个数据帧包含相等但随机的数据?它不是基于特定列。

例如,我在数据帧中有一个100行和30列。我想将这些数据分成5个批次。我应该在每个数据框中有20个记录,每个数据框有相同的30列,并且所有5个批次都没有重复,我选择行的方式应该是随机的。我不希望在单个列上随机选择。

我认为我将使用index和numpy的一种方式将它们分成多个并使用它来分割数据帧。想要看看有人有一个简单的熊猫方式。

2 个答案:

答案 0 :(得分:6)

如果您不关心可能包含某些相同信息的新数据框,则可以使用sample frac指定所需数据框的分数

df1 = df.sample(frac=0.5) # df1 is now a random sample of half the dataframe

编辑:

如果您想避免重复,可以使用shuffle中的sklearn

from sklearn.utils import shuffle

df = shuffle(df)
df1 = df[0:3]
df2 = df[3:6]

答案 1 :(得分:1)

根据您的需要,您可以使用pandas.DataFrame.sample()随机抽样原始数据框df。

df1 = df.sample(n=3) 
df2 = df.sample(n=3)

给你两个子集,每个子​​集有3个样本。相等数量的记录和随机。