如何将数据帧拆分为多个数据帧,其中每个数据帧包含相等但随机的数据[重复]
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 我已经更新了我的答案,这能回答你的问题吗? 你的回答帮助了我。谢谢以上是关于如何将数据帧拆分为多个数据帧,其中每个数据帧包含相等但随机的数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章