Python 以动态方式从随机生成的数据帧中获取随机样本(非硬编码)
我已经编写了一些代码,可以生成随机生成的索引(500行)的数据帧。但是,任务是仅从最后50行(从随机生成的数据帧)中获得5个随机选择的行。我已经成功地选择了5行,但问题是它们不是根据需要专门来自数据帧的最后50个索引。另外,您不能使用硬编码 我尝试了以下代码,该代码应仅从数据帧的最后50行中选择5行: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
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是否允许硬编码?