繁体   English   中英

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

[英]How to take random sample from a csv file

我有一个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个数据样本的准确性?

编辑:对于分类,我要做:对于文本文本中的我:#classify文本结果将如下所示:

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个示例进行分类

最好的方法是使用pandas.DataFrame.sample

import pandas as pd
df=pd.read_csv("filename.csv")
print(df.sample(4)) #Number of items from axis to return. Cannot be used with frac. Default = 1 if frac = None.

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM