Python 以动态方式从随机生成的数据帧中获取随机样本(非硬编码)

Python 以动态方式从随机生成的数据帧中获取随机样本(非硬编码),python,dataframe,random,Python,Dataframe,Random,我已经编写了一些代码,可以生成随机生成的索引(500行)的数据帧。但是,任务是仅从最后50行(从随机生成的数据帧)中获得5个随机选择的行。我已经成功地选择了5行,但问题是它们不是根据需要专门来自数据帧的最后50个索引。另外,您不能使用硬编码 我尝试了以下代码,该代码应仅从数据帧的最后50行中选择5行: def randomly_generated_dataframe(self, df1, select=5, start_range=50, end_range=1): selected_i

我已经编写了一些代码,可以生成随机生成的索引(500行)的数据帧。但是,任务是仅从最后50行(从随机生成的数据帧)中获得5个随机选择的行。我已经成功地选择了5行,但问题是它们不是根据需要专门来自数据帧的最后50个索引。另外,您不能使用硬编码

我尝试了以下代码,该代码应仅从数据帧的最后50行中选择5行:

def randomly_generated_dataframe(self, df1, select=5, start_range=50, end_range=1):

   selected_indices = np.random.random_integers(len(df1.index[-start_range:]), len(df1.index[:-end_range]), select)
   return df1.loc[selected_indices]

我没有收到任何错误消息,但输出是不正确的,因为所选的5行似乎来自
数据帧的任何部分,而不仅仅是预期的最后50行。

我假设您希望选择不替换的行,因此
replace=False

import numpy as np
import pandas as pd

np.random.seed(0)
df = pd.DataFrame(np.random.randint(10, size=(1000, 2)))
df.columns = ['x', 'y']
indices = np.random.choice(df.index[-50:], size=5, replace=False)
result = df.loc[indices]
print(result)
输出:

     x  y
963  9  8
988  6  3
986  6  3
990  9  5
955  1  2

除了硬编码之外,关于您的问题的所有内容都很清楚。5和50是否允许硬编码?