如何在python中从dataframe中选择某些%的记录?
我需要从我的数据框中选择一些记录进行分析,比如说我需要从我的数据框中选择33%的记录,它有100条记录(作为一个例子)。我需要从我的数据框中随机选择33条记录。我尝试了“random.randint”,但这并没有给出准确的33%的记录,它只给出了大约33%的记录。下面是我的代码:如何在python中从dataframe中选择某些%的记录?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我需要从我的数据框中选择一些记录进行分析,比如说我需要从我的数据框中选择33%的记录,它有100条记录(作为一个例子)。我需要从我的数据框中随机选择33条记录。我尝试了“random.randint”,但这并没有给出准确的33%的记录,它只给出了大约33%的记录。下面是我的代码: DF_1['ran'] = [random.randint(0,99) for k in DF_1.index] DF_2=DF_1[DF_1['ran']<33] DF_1['ran']=[random
DF_1['ran'] = [random.randint(0,99) for k in DF_1.index]
DF_2=DF_1[DF_1['ran']<33]
DF_1['ran']=[random.randint(0,99)表示DF_1.index中的k]
列表理解中的DF_2=DF_1[DF_1['ran']randint
不能保证均匀分布,也不能保证没有重复
使用random
模块,您可以使用,该模块提供无需更换的样本:
对于NumPy,您可以使用,指定replace=False
:
indices = np.random.choice(Mission_3_0A.index, size=num, replace=False)
DF_2 = DF_1.loc[indices].copy()
最惯用的用法是:
?
indices = np.random.choice(Mission_3_0A.index, size=num, replace=False)
DF_2 = DF_1.loc[indices].copy()
DF_2 = DF_1.sample(n=num) # absolute number
DF_2 = DF_1.sample(frac=1/3) # give fraction (floored if not whole)