当前位置:  开发笔记 > 编程语言 > 正文

使用Python从CSV中删除包含空单元格的行

如何解决《使用Python从CSV中删除包含空单元格的行》经验,为你挑选了1个好方法。

我将基于日期列的CSV文件拆分为单独的文件.但是,某些行确实包含日期,但其他行包含日期.我想从CSV中删除包含空单元格的这些行.但我不知道该怎么做.

这是我的代码:

csv.field_size_limit(sys.maxsize)

with open(main_file, "r") as fp:
    root = csv.reader(fp, delimiter='\t', quotechar='"')
    result = collections.defaultdict(list)
    next(root)
    for row in root:
        year = row[0].split("-")[0]
        result[year].append(row)

for i,j in result.items():
    row_count = sum(1 for row in j)
        print(row_count)
        file_path = "%s%s-%s.csv"%(src_path, i, row_count)
        with open(file_path, 'w') as fp:
            writer = csv.writer(fp, delimiter='\t', quotechar='"')
            writer.writerows(j)

Phlya.. 6

Pandas非常适合这种情况,特别是如果您希望将其轻松调整为其他文件格式.当然,人们可以认为这是一种矫枉过正.要删除包含空单元格的行:

>>> import pandas as pd
>>> data = pd.read_csv('example.csv', sep='\t')
>>> print data
   A   B   C
0   1   2  5
1 NaN   1  9
2   3   4  4
>>> data.dropna()
   A   B   C
0   1   2  5
2   3   4  4
>>> data.dropna().to_csv('example_clean.csv')

我离开执行拆分并使用pandas保存到单独的文件中作为练习,如果你想要开始学习这个伟大的包:)



1> Phlya..:

Pandas非常适合这种情况,特别是如果您希望将其轻松调整为其他文件格式.当然,人们可以认为这是一种矫枉过正.要删除包含空单元格的行:

>>> import pandas as pd
>>> data = pd.read_csv('example.csv', sep='\t')
>>> print data
   A   B   C
0   1   2  5
1 NaN   1  9
2   3   4  4
>>> data.dropna()
   A   B   C
0   1   2  5
2   3   4  4
>>> data.dropna().to_csv('example_clean.csv')

我离开执行拆分并使用pandas保存到单独的文件中作为练习,如果你想要开始学习这个伟大的包:)

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有