python删除指定行_关于csv:删除python中的特定行和对应文件

我想删除90%的"转向"值等于0的行。这三个图像都有一个对应的图像文件,中间,左边和右边。我也要删除它们。csv文件如下:

abmS9.png

我编写了以下代码,以至少获取转向值为0的文件。我所需要的就是随机获取90%的文件并删除它们的代码。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18with open('data/driving_log.csv') as csvfile:

reader = csv.reader(csvfile)

for i,line in enumerate(reader):

lines.append(line)

index.append(i)

lines = np.delete(lines,(0), axis = 0)

for i, line in enumerate(lines):

#print(type(line[3].astype(np.float)))

line_no.append(line[3].astype(np.float32))

#print(line_no[i])

if line_no[i]==0.0:

# this gets the first column of the row.

for j in range(3):

source_path = line[j]

filename = source_path.split('/')[-1]

print(filename)

count += 1

您是否搜索过如何在python中生成随机数和删除文件?生成随机数。删除文件。

是的,我需要随机导入并使用os.remove()删除文件。但是,我在两个地方感到困惑,从csv文件中删除一行,随机删除90%的转向值等于0的文件。

你能把你的csv文件的一部分以文本格式发布吗?最好用逗号作为分隔符。

而且,您的代码是不完整的。很多未定义的变量。

img/中_2016_12_01_13_30_48_287.jpg,img/左_2016_12_01_13_48_287.jpg,img/右_2016_12_01_13_48_287.jpg,0,0,0,22.14829。

我添加了代码开始工作的部分。在此之前,它只是导入包并初始化变量。

我认为这会满足你的需求:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39import csv

from random import randint

from os import remove

# Create a 2D list from which we can work with

lines = []

with open('data/driving_log.csv', newline='') as csvfile:

reader = csv.reader(csvfile)

for line in reader:

lines.append(line)

# Find 10% of total lines (to keep), not including header row

numToKeep = round(sum(1 for i in lines if i[3] == '0') * 0.1)

# Save 10% of lines to a new 2D list

toKeep = []

for i in range(numToKeep):

while True:

index = randint(1, len(lines)-1)

# Make sure we haven't already selected the same line

if lines[index] not in toKeep and lines[index][3] == '0':

toKeep.append(lines[index])

break

# Deleting all files of the selected 90% of rows

for i, line in enumerate(lines):

if i == 0: # Omit the header row

continue

if lines[i][3] != '0': # Keep rows that don't have a steering value of 0

toKeep.append(lines[i])

if line not in toKeep:

print("Deleting: {}".format(line))

for i in range(3):

remove(line[i])

with open('data/driving_log.csv', 'w', newline='') as csvfile:

writer = csv.writer(csvfile)

writer.writerows([lines[0]]) # Put the header back in

writer.writerows(toKeep)

我意识到这不是最优雅的解决方案。我对numpy不熟悉,现在也没有时间去学习,但这应该管用。

嘿,谢谢你。但我看不出转向角需要为0的条件。另外,我还想删除相应的文件。就像我想删除img文件夹中的center_2016_12_01_13_30_48_287.jpg。你能帮我做这两件事吗?

这行if lines[index] not in toKeep and lines[index][3] == '0':指出,如果我们还没有将该行添加到要保留的行列表中,并且如果转向柱等于0,那么……

这些行:for i in range(3):和remove(line[i])将删除该行的3个文件中的每一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

I2C总线传输协议

简介 I2C(Inter-integrated Circuit)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换。I2C最早是飞利浦在1982年开发设计并用于自己的芯片上,一开始只允许100kHz…

基于Springboot外卖系统06: 新增员工功能+全局异常处理器

2. 新增员工 2.1 需求分析 后台系统中可以管理员工信息,通过新增员工来添加后台系统用户。点击[添加员工]按钮跳转到新增页面,如下 当填写完表单信息, 点击"保存"按钮后, 会提交该表单的数据到服务端, 在服务端中需要接受数据, 然后将数据保…

spring aop实现原理_Spring 异步实现原理与实战分享

最近因为全链路压测项目需要对用户自定义线程池 Bean 进行适配工作,我们知道全链路压测的核心思想是对流量压测进行标记,因此我们需要给压测的流量请求进行打标,并在链路中进行传递,那么问题来了,如果项目中使用了多线…

基于Springboot外卖系统07:员工分页查询+ 分页插件配置+分页代码实现

1. 员工分页查询 1.1 需求分析 在分页查询页面中, 以分页的方式来展示列表数据,以及查询条件 "员工姓名"。 请求参数 搜索条件: 员工姓名(模糊查询) 分页条件: 每页展示条数 , 页码 响应数据 总记录数 结果列表 1…

1045-Access denied for user 'root'@'localhost'(using password:YES)

解决: 1. 开始 --> cmd --> net stop mysql (停用MySQL服务 没启动的可以省略) 2. 找到安装路径 MySQL Server 5.1下的my.ini 3. 打开 my.ini 找到 [mysqld] 然后在下面加上 这句: skip_grant_tables (意思好像是 启动MySQL服务…

arial字体可以商用吗_【工作总结】莫让字体版权引火上身

前段一条微软雅黑字体引发的巨额罚款新闻,引起国内多个TW大群小地震,人人自危。我也赶紧检查自家文档、商用出版物、网站的字体,以免给公司带来法务后患。把这两天收集的信息,采取的行动记录一下。哪些中文字体免费?事…

基于Springboot外卖系统08:员工账号状态管理功能+对象转换器+扩展Spring mvc的消息转换器

1. 员工账号状态管理 1.1 需求分析 在员工管理列表页面,可以对某个员工账号进行启用或者禁用操作。账号禁用的员工不能登录系统,启用后的员工可以正常登录。如果某个员工账号状态为正常,则按钮显示为 "禁用",如果员工…

基于Springboot外卖系统09:员工信息编辑+员工信息保存

1 编辑员工信息功能 1.1 需求分析 在员工管理列表页面点击 "编辑" 按钮,跳转到编辑页面,在编辑页面回显员工信息并进行修改,最后点击 "保存" 按钮完成编辑操作。 那么从上述的分析中,当前实现的编辑功能需…

bcp 不能调用where 子句_MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

不知道从什么时候开始,网上流传着这么一个说法:MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、! 这些条件时便不能使用索引查询,只能使用全表扫描。这种说法愈演愈烈,甚至被很多同学奉为真理。咱啥话也不说,举个例子。…

基于Springboot外卖系统10:公共字段填充功能+ThreadLocal模块改进

1. 公共字段自动填充 1.1 问题分析 在新增员工时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工时需要设置修改时间、修改人等字段。这些字段属于公共字段,也就是也就是在系统中很多表中都会有这些字段,如下: 而…

腾讯云挂在和格式化数据盘

新购买了数据盘时,需要格式化才可使用。未购买数据盘的用户可以跳过此步骤。也可以根据需要进行多分区操作。 这里以Windows 2012R2为例进行格式化说明。 1) 通过步骤四介绍的方法登录Windows云服务器。 2) 点击【开始】(Start)-【服务器管理…

基于Springboot外卖系统11:菜品新增类别+类别信息分页查询

1. 新增分类 1.1 需求分析 后台系统中可以管理分类信息,分类包括两种类型,分别是 菜品分类 和 套餐分类 。当我们在后台系统中添加菜品时需要选择一个菜品分类,在后台系统中添加一个套餐时需要选择一个套餐分类,在移动端也会按照…

基于Springboot外卖系统12:删除菜品套餐类别+修改套餐类别信息

1. 删除分类 1.1 需求分析 在分类管理列表页面,可以对某个分类进行删除操作。需要注意的是当分类关联了菜品或者套餐时,此分类不允许删除。 1.2 前端页面分析 在前端页面中,点击 "删除" 按钮,就会触发定义的方法&…

html5手机移动端三级联动城市选择器

//我的地址 var area1 new LArea(); area1.init({ trigger: #demo1, //触发选择控件的文本框,同时选择完毕后name属性输出到该位置 valueTo: #value1, //选择完毕后id属性输出到该位置 keys: { id: id, name: name }, //绑定数据源相关字段 id对应valueTo的value属…

我的师傅是风清扬

1 珍惜那些处处帮助你的人 国庆假期就要过去了,国庆这几天一直在考虑一个问题(先保留是什么问题),也咨询了几个比较信任的朋友,都没有得到肯定的答案。 回家路上跟了一个大哥哥(陈哥)&#xf…

要多大内存才满足_佛龛的尺寸要多大?

佛龛是用于供奉佛像或者牌位的小阁子,大多数是木制家具。佛龛在一般是仿中国古代的房子等工程建筑制做而成,在其纹样层面有很高的要求,有关纹样今日姑且先不谈。除此之外佛龛的尺寸大小多少才算吉祥也是很有讲究的,那麼这个问题跟…

【YOLOV5-6.x讲解】数据配置文件 data/XXX.yaml

主干目录: 【YOLOV5-6.x 版本讲解】整体项目代码注释导航现在YOLOV5已经更新到6.X版本,现在网上很多还停留在5.X的源码注释上,因此特开一贴传承开源精神!5.X版本的可以看其他大佬的帖子本文章主要从6.X版本出发,主要解…

python print 输出到txt_(Python基础教程之七)Python字符串操作

Python基础教程在SublimeEditor中配置Python环境Python代码中添加注释Python中的变量的使用Python中的数据类型Python中的关键字Python字符串操作Python中的list操作Python中的Tuple操作Pythonmax()和min()–在列表或数组中查找最大值和最小值Python找到最大的N个(前N个)或最小…

【YOLOV5-6.x讲解】常用工具类 models/common.py

主干目录: 【YOLOV5-6.x 版本讲解】整体项目代码注释导航现在YOLOV5已经更新到6.X版本,现在网上很多还停留在5.X的源码注释上,因此特开一贴传承开源精神!5.X版本的可以看其他大佬的帖子本文章主要从6.X版本出发,主要解…

【YOLOV5-6.x讲解】DIY实验文件 models/experimental.py

主干目录: 【YOLOV5-6.x 版本讲解】整体项目代码注释导航现在YOLOV5已经更新到6.X版本,现在网上很多还停留在5.X的源码注释上,因此特开一贴传承开源精神!5.X版本的可以看其他大佬的帖子本文章主要从6.X版本出发,主要解…