从文本文件/ Python中读取N个随机行

时间:2018-06-18 18:13:18

标签: python-3.x pandas

我目前正在阅读"收集"包含int类型的所有可能结果的文件,我将其读入DataFrame。

cycle = 19380816
pull = 10000000
sample = rand.sample(range(cycle),cycle-pull)
new_df = pd.read_csv('collection.txt', skiprows = sample, sep = " ", names = ['a1','b1','c1','a2','b2','c2','a3','b3','c3','a4','b4','c4','a5','b5','c5'], header = None)

当然样本不能大于实际文件的长度。 我想随机拉出超过文件中行长的行。 在这种情况下," pull>周期&#34 ;. 基本上是

rand.choice, 'of line in "collections.txt"', N times

有没有办法使用pd.read_csv?

执行此操作

1 个答案:

答案 0 :(得分:0)

您可以随时读取整个数据帧,然后从行索引中取n个样本(使用rand.choices替换),然后使用iloc获取新的采样数据帧。

# cycle = 19380816
pull = 10000000

whole_df = pd.read_csv('collection.txt', sep = " ", names = ['a1','b1','c1','a2','b2','c2','a3','b3','c3','a4','b4','c4','a5','b5','c5'], header = None)
i_sample = rand.choices(range(len(whole_df)), k=pull)
new_df = whole_df.iloc[i_sample]