我想做的就是删除第三列中值为'0'的行。数据的示例如下:
6.5, 5.4, 0, 320
6.5, 5.4, 1, 320
字符串
因此,第一行需要删除,而第二行将保留。
到目前为止,我所做的如下:
import csv
input = open('first.csv', 'rb')
output = open('first_edit.csv', 'wb')
writer = csv.writer(output)
for row in csv.reader(input):
if row[2]!=0:
writer.writerow(row)
input.close()
output.close()
型
任何帮助都会很好
4条答案
按热度按时间iqxoj9l91#
你很接近了;目前你比较
row[2]
和整数0
,比较字符串"0"
。当你从一个文件中读取数据时,它是一个字符串而不是一个整数,所以这就是为什么你的整数检查目前失败:字符串
此外,你可以使用
with
关键字来使当前代码稍微更pythonic一些,这样你的代码中的行就减少了,你可以省略.close
语句:型
注意,
input
是Python内置的,所以我使用了另一个变量名。"0"
就可以了,所以你可以使用strip(row[2]) != 0
,也可以检查" 0"
。更好的解决方案是更正csv格式,但如果您想保留当前格式,以下内容将适用于给定的csv文件格式:
型
qgzx9mmu2#
使用
pandas
惊人的库:问题的解决方案:
字符串
通用通用解决方案:
使用此功能:
型
功能实现:
型
**注意:**在此函数中,您可以发送无限的字符串单元格,并且所有这些行都将被删除(假设它们存在于发送的单列中)。
dwthyt8l3#
你应该有
if row[2] != "0"
。否则它不会检查字符串值是否等于0。2w2cym1i4#
你可以使用这个来删除csv中的行:
字符串