如何从csv文件中抽取随机样本

时间:2018-08-22 23:20:11

标签: python

我有一个10行的csv文件:

Text,Class
text0,class0
text1,class1
...
text9,class9

我正在对文本进行分类,然后将其与csv文件中标记的正确类进行比较。我想从中随机抽取4个文本及其类的样本。我有:

import random
textt=data['Text']
class_one=data['Class']
c=textt[0:]
random_sample=random.sample(c,4)

然后我的分类开始于:

for i in random_sample:

但是当我计算分类的准确性时,它将为整个数据集进行计算。如何仅计算4个数据样本的准确度呢?

编辑: 对于分类,我这样做:     对于我在textt中:         #分类文字 结果将如下所示:

choice 1
choice 2
choice 1
...

并将其与csv文件中的正确类进行比较:

choice 1
choice 2
choice 2
...

使用以下方法将计算出准确度为66.6%:

for i in class_one:
    #if predicted_class= correct_class: 
    #accuracy=number_correct/total_number

我只想对随机样本进行分类,因此,除了对所有10个示例进行分类之外,它只会对4个示例进行分类

2 个答案:

答案 0 :(得分:1)

最好的方法是使用熊猫:

import pandas as pd
df=pd.read_csv("filename.csv")
print(df.sample(4)) #whatever number of random sample size you want

答案 1 :(得分:0)

最可能pandas解决方案是您的正确选择。如果您想将python中的任何CSV文件通常拆分为随机洗牌的20%:80%训练和测试拆分,则可以使用core python:

import random
x     = open("dataset.csv").readlines()
random.shuffle(x)
train = x[:int(total*0.8)]
test  = x[int(total*0.8):]

似乎您正在尝试评估某种分类(机器学习?)任务,因此我强烈建议您查找scikit-learn的{​​{3}},因为它可以对其他变量进行分层,并且与pandas DataFrames一起使用。