繁体   English   中英

如何使用 Pandas 逐个读取 CSV 文件?

[英]How to read a CSV file subset by subset with Pandas?

我有一个包含 13000 行和 3 列的数据框:

('time', 'rowScore', 'label')

我想逐个读取子集:

[[1..360], [360..712], ..., [12640..13000]]

我也使用了 list 但它不起作用:

import pandas as pd
import math
import datetime

result="data.csv"
dataSet = pd.read_csv(result)
TP=0
count=0
x=0
df = pd.DataFrame(dataSet, columns = 
     ['rawScore','label'])
for i,row in df.iterrows():
    data=  row.to_dict()   

    ScoreX= data['rawScore']
    labelX=data['label']


  for i in range (1,13000,360):
     x=x+1
    for j in range (i,360*x,1):
        if ((ScoreX  > 0.3) and (labelX ==0)):
            count=count+1
 print("count=",count)

您还可以使用参数nrowsskiprows将其分解为块。 我建议不要使用iterrows因为它通常很慢。 如果您在读取值时执行此操作,并分别保存这些块,则会跳过 iterrows 部分。 如果您想分成多个块,这是用于文件读取(这似乎是您尝试做的中间步骤)。

另一种方法是通过查看值是否属于每个集合来使用生成器进行子集化:[[1..360], [360..712], ..., [12640..13000]]

因此,编写一个函数,该函数采用索引可被 360 整除的块,如果索引在该范围内,则选择该特定子集。

我只是将这些方法写下来作为您可能想要尝试的替代想法,因为在某些情况下,您可能只需要一个子集而不是所有块用于计算目的。

暂无
暂无

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

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