python - 如何使用 Pandas 按子集读取 CSV 文件子集?
问题描述
我有一个包含 13000 行和 3 列的数据框:
('time', 'rowScore', 'label')
我想逐个子集地阅读:
[[1..360], [360..712], ..., [12640..13000]]
我也使用了列表,但它不起作用:
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)
解决方案
您还可以使用参数nrows
或skiprows
将其分解为块。我建议不要使用iterrows
,因为这通常非常慢。如果您在读取值时这样做,并分别保存这些块,那么它将跳过 iterrows 部分。如果您想拆分成块(这似乎是您尝试做的中间步骤),这是用于文件读取的。
另一种方法是通过查看值是否属于每个集合来使用生成器进行子集化:[[1..360], [360..712], ..., [12640..13000]]
因此,编写一个函数来获取索引可被 360 整除的块,如果索引在该范围内,则选择该特定子集。
我只是将这些方法写下来作为您可能想要尝试的替代想法,因为在某些情况下您可能只需要一个子集而不是所有块用于计算目的。
推荐阅读
- json - Json - 在 pyspark 中展平键和值
- php - 在将原始文件上传到服务器之前,如何在 PHP 中压缩文件(从客户端发送)
- python - 将变量映射到各种输入层的最佳方法
- c++ - 为什么尝试访问引用指针时出现访问冲突错误?
- statistics - 我可以获得一个联合零假设的显着 F 统计量和另一个联合零假设的非显着 F 统计量吗?
- sympy - 向三角函数的总和添加一个角度
- javascript - 未捕获的类型错误:无法设置未定义的属性“innerText”
- typescript - 修改部分联合类型
- linux - 如何使用 apache2 访问 Linux 服务器上的本地目录
- python-3.x - 调用 Life360 API 时出错 - 部分初始化的模块