如何将数据帧拆分为多个数据帧,其中每个数据帧包含相等但随机的数据?它不是基于特定列。
例如,我在数据帧中有一个100行和30列。我想将这些数据分成5个批次。我应该在每个数据框中有20个记录,每个数据框有相同的30列,并且所有5个批次都没有重复,我选择行的方式应该是随机的。我不希望在单个列上随机选择。
我认为我将使用index和numpy的一种方式将它们分成多个并使用它来分割数据帧。想要看看有人有一个简单的熊猫方式。
答案 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个样本。相等数量的记录和随机。