我从DataFrame
文件加载了一个.tsv
文件。我想生成一些探索性的图。问题是数据集很大(约100万行),所以绘图上的点太多,看不到趋势。另外,还需要一段时间来策划。
我想分样本10000个随机分布的行。这应该是可重复的,所以在每次运行中生成相同的随机数序列。
这:Sample two pandas dataframes the same way似乎在正确的轨道上,但我不能保证子样本的大小。
最佳答案
您可以使用np.random.choice
从索引中选择随机元素。例如,选择5个随机行:
df = pd.DataFrame(np.random.rand(10))
df.loc[np.random.choice(df.index, 5, replace=False)]
此功能在1.7中是新功能。如果您想要一个带有旧numpy的解决方案,可以对数据进行无序处理,并获取其中的第一个元素:
df.loc[np.random.permutation(df.index)[:5]]
这样,就不再对数据帧进行排序,但如果Plottin(例如,对于线图)需要这样做,则可以在之后简单地执行
.sort()