从熊猫数据框中随机采样行并保持索引

时间:2019-03-09 22:25:17

标签: python pandas

我正在处理一个非常大的CSV文件(4GB),有2500万行。为了执行分析,我希望抽取约100,000行的随机样本。我已经在数据框中使用了df1 = df.sample(n)函数。

我发现df1的索引值不同于原始df中的索引。有没有办法解决这个问题? df.sample是否会重置它返回的数据框中的索引?

对我来说,保留索引很重要,因为我计划将来使用它来引用行。

我已经在df1中采样了数据帧。当我尝试查看原始df中元素之一的索引时,它具有与之相关的另一行

enter image description here

1 个答案:

答案 0 :(得分:1)

DataFrame.sample保留索引。

问题出在索引上。.iloc允许您选择计数从0开始的行,而不管实际的索引如何。从您的图片中,我们可以看到.iloc[228607]的索引实际上是241545(从Name所在的最后一行开始)。创建df之后,您很可能在其中放置了一些行。

您想与.loc进行比较,因此无论行在df中的位置如何,您都可以选择完全相同的行:

df.loc[228607, :]