[英]How to take random sample of a cvs file in Python?
我是Python的新手,想学习使用它的数据整理过程。 我为此使用jupyter。
我有一个名为fle的文件,具有81,000行和89列。 我想从中随机选择大约100行。 我怎么做? 我一直在跟踪错误。
fle=pd.read_csv("C:\Users\Mine\Documents\ssample.csv", low_memory= False)
import random
sampl = random.sample(fle, 10)
我得到的错误是:
IndexError Traceback (most recent call last)
<ipython-input-37-fa4ec429f883> in <module>()
1 import random
2 #To take a sample of 10000 samples
----> 3 sampl = random.sample(fle, 10)
4 #pd.DataFrame(sampler).head(10)
C:\Users\E061921\AppData\Local\Continuum\Anaconda\lib\random.pyc in sample(self, population, k)
334 for i in xrange(k): # invariant: non-selected at [0,n-i)
335 j = _int(random() * (n-i))
--> 336 result[i] = pool[j]
337 pool[j] = pool[n-i-1] # move non-selected item into vacancy
338 else:
IndexError: list index out of range
使用random.choice
而不是sample。 您可以使用csv.DictReader
将CSV作为字典列表进行处理
import csv
import random
random_rows = set()
with open("C:\Users\Mine\Documents\ssample.csv", "r") as csvfile:
reader = csv.DictReader(csvfile)
rows = [r for r in reader]
while len(random_rows) < 100:
random_rows.add(random.choice(rows))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.