我有一个Pandas Dataframe ,我想从其中随机选取样本。第一次我想选取10个,然后是20,30,40,50个随机样本(没有替换)。我试图用一个for循环来做,尽管我不知道这有多好,因为一个列表不能包含 Dataframe ,对吗?(我的代码用R更好,列表可以包含 Dataframe )。
number = [10,20,30,40,50]
sample = []
for i in range(len(number)):
sample[i].append(data.sample(n = number[i]))
误差为IndexError: list index out of range
我不想复制过去的代码,那么什么是正确的方式来做呢?
2条答案
按热度按时间8i9zcol21#
尝试range(len(number)-1)。原因是for循环从0开始到n。所以在本例中,它将从0开始,然后到5。总共有6个循环(0,1,2,3,4,5)。这就是为什么你的列表超出范围
w7t8yxp52#
你可以使用
radint
方法从列表number
中选择随机元素来实现这一点:更新:
假设您有Movies Rating数据集的 Dataframe :
您可以使用
sample
方法从中随机取样:输出量:
另一个执行:
此外,您还可以根据 Dataframe **#**的行数随机分配样本数:
备选方法:
如果需要,您可以编写自己的函数,通过以下方式从 Dataframe 生成随机样本:
首次运行:
第二次运行: