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

Posted

技术标签:

【中文标题】如何将数据帧拆分为多个数据帧,其中每个数据帧包含相等但随机的数据[重复]【英文标题】: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 并将它们分成很多块并使用它来拆分数据帧的一种方式。想看看是否有人有一种简单的熊猫方式来做这件事。

【问题讨论】:

你能举个例子吗? 【参考方案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 我已经更新了我的答案,这能回答你的问题吗? 你的回答帮助了我。谢谢

以上是关于如何将数据帧拆分为多个数据帧,其中每个数据帧包含相等但随机的数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:按行数将数据帧拆分为多个数据帧

Scala:我如何根据行数将数据帧拆分为多个 csv 文件

如何使用 R 中的条件语句将数据帧拆分为多个数据帧

熊猫如何按间隔按列拆分数据帧

熊猫如何按间隔按列拆分数据帧

根据 NaN 值将数据帧拆分为多个数据帧