【问题标题】:How do I split a dataframe into multiple dataframes where each dataframe contains equal but random data [duplicate]如何将数据帧拆分为多个数据帧,其中每个数据帧包含相等但随机的数据[重复]
【发布时间】:2017-10-17 07:41:03
【问题描述】:

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

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

我认为我将使用 index 和 numpy 并将它们分成很多块并使用它来拆分数据帧的一种方式。想看看是否有人有一种简单的熊猫方式来做这件事。

【问题讨论】:

  • 你能举个例子吗?

标签: pandas


【解决方案1】:

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

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

为您提供两个子集,每个子​​集有 3 个样本。记录数相等且随机。

【讨论】:

    【解决方案2】:

    如果您不关心可能包含某些相同信息的新数据帧,您可以使用 sample 其中frac 指定您想要的数据帧的分数

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

    编辑:

    如果你想避免重复,你可以使用shuffle from sklearn

    from sklearn.utils import shuffle
    
    df = shuffle(df)
    df1 = df[0:3]
    df2 = df[3:6]
    

    【讨论】:

    • 我不想在批次中有重复。
    • @AnilK 我已经更新了我的答案,这能回答你的问题吗?
    • 你的回答帮助了我。谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多