在python中按列读取csv的问题

时间:2013-12-21 04:02:54

标签: python

我有一个CSV文件,其中包含空格,即空行或随机换行,如下例所示

header1,data1
header2,data2

header4,data4

header6,data6

以下示例在CSV没有空格时正常工作,但有没有办法按空格加载CSV?

import csv

file = csv.reader(open('file.csv'))
blob = zip(*file)

2 个答案:

答案 0 :(得分:1)

熊猫会工作:

import pandas
pandas.read_csv("tmp.txt", header=None)

         0      1
0  header1  data1
1  header2  data2
2      NaN    NaN
3  header4  data4
4      NaN    NaN
5  header6  data6

您可能想要过滤掉NaN。

答案 1 :(得分:1)

我会在zip [假设为open]的python 2之前过滤行:

>>> import csv
>>> with open("blank.csv", "rb") as fp:
...     reader = csv.reader(fp)
...     rows = [line for line in reader if line]
...     blob = zip(*rows)
...     
>>> blob
[('header1', 'header2', 'header4', 'header6'), ('data1', 'data2', 'data4', 'data6')]

if line这里基本上等同于if len(line) > 0