我是一名 Python 初学者,正在尝试为给定类别获取多个随机行。原始文件有三列,但我感兴趣的只是这些类别之一。文件(csv)如下所示:
No,Size,Name
10,1346,Cat
24,423,Dog
289,590,Cat
12,302,Dog
351,33,Cat
51,812,Dog
91,778,Cat
1193,465,Cat
44,178,Dog
没有一行是相同的,我想为每个“名称”随机获取 3 行。这是我到目前为止所拥有的:
import random
with open('C:\Users\Owl\file.csv') as f:
lines = f.readlines()[1:] #Skip heading
for line in lines:
try:
name = line[2]
except:
continue
for name in lines:
for lines in random.sample(lines,3):
print lines
f.close()
但我得到这样的东西:
12,302,Dog
1193,465,Cat
10,1346,Cat
2
3
D
而不是这样的:
1193,465,Cat
10,1346,Cat
91,778,Cat
51,812,Dog
44,178,Dog
12,302,Dog
在我现在得到的输出中,我没有按“名称”获取行,并且在此之后只是字母/数字。然后,我得到“ValueError:样本大于总体”并终止(实际文件比此处的示例大得多)。
另外,如果可能的话,是否有一种简单的方法可以在输出中按“名称”进行排序?
我已经为此苦苦挣扎了几个小时,在互联网上查找它,但未能解决......有人可以帮助我吗?谢谢你们!