当某个列没有值python时删除.csv的行

时间:2016-03-24 13:52:25

标签: python csv row erase

我有一个.csv文件,我试图删除一些没有可用信息的行/行。我想删除某个列中没有值的行。我对编程很新,我找不到办法做到这一点。这可能吗?

我试图删除一条线,如果它没有一定数量,但是效果不好。

findViewById

这里有一些示例行:

<include layout="@layout/contnent_main"/>

所以我想删除第三列和第四列中没有数字的行。

2 个答案:

答案 0 :(得分:1)

您可以使用Python的csv库来帮助您完成此操作。您的数据似乎以制表符分隔,因此以下脚本应该有效:

import csv

with open('input.csv', 'rb') as f_input, open('output.csv', 'wb') as f_output:
    csv_output = csv.writer(f_output, delimiter = '\t')

    for row in csv.reader(f_input, delimiter = '\t'):
        if len(row[2]) and len(row[3]):
            csv_output.writerow(row)

为您提供包含以下内容的output.csv文件:

0,593   0,250984    -20,523384  -25,406271
0,597   0,250984    -15,793088  -21,286336
0,601   0,784814    -12,130922  -11,825742
0,605   0,602954    -8,316167   -3,43328
0,609   0,251656    -11,825742  -5,874723

请注意,您的每一行似乎都有4列(您的数据包含这些缺失条目的标签),因此,仅仅测试长度为4是不够的。您需要测试两个单元格的内容。

答案 1 :(得分:0)

import csv

fn_in = 'test.csv'
fn_out = 'outfile.csv'

with open(fn_in, 'r') as inp, open(fn_out, 'w') as out:
    writer = csv.writer(out)
    for row in csv.reader(inp):
        if len(row)==4:
            writer.writerow(row)