我正在处理一个非常大的CSV文件(4GB),有2500万行。为了执行分析,我希望抽取约100,000行的随机样本。我已经在数据框中使用了df1 = df.sample(n)函数。
我发现df1的索引值不同于原始df中的索引。有没有办法解决这个问题? df.sample是否会重置它返回的数据框中的索引?
对我来说,保留索引很重要,因为我计划将来使用它来引用行。
我已经在df1中采样了数据帧。当我尝试查看原始df中元素之一的索引时,它具有与之相关的另一行
答案 0 :(得分:1)
DataFrame.sample
保留索引。
问题出在索引上。.iloc
允许您选择计数从0开始的行,而不管实际的索引如何。从您的图片中,我们可以看到.iloc[228607]
的索引实际上是241545
(从Name
所在的最后一行开始)。创建df
之后,您很可能在其中放置了一些行。
您想与.loc
进行比较,因此无论行在df
中的位置如何,您都可以选择完全相同的行:
df.loc[228607, :]