2017-05-24 77 views
-4

我有一个包含字符串单元格的CSV文件,我想将它导入python。我的文件是这样的:带有python字符串的CSV文件

header1 header2 header3 
abc  1.12 abc 
str1  5.00  str2 

我想在Python中看到相同的格式作为数组。我怎样才能做到这一点?

回答

0

要转换(假设制表符分隔)CSV文件成列表的列表:

import csv 

with open('input.csv', 'rb') as f_input: 
    csv_input = csv.reader(f_input, delimiter='\t') 
    header = next(csv_input) 
    data = list(csv_input) 

print data 
print data[1][2]  # row 2, column 3 

这将使你data控股:

[['abc', '1.12', 'abc', ''], ['str1', '5.00', 'str2']] 

str2 

如果要在data中包含标题,请将标题行注释掉。

+0

完美,谢谢。现在我可以在int中转换str2的格式了! – sunny

0

例与标签分隔的csv文件:

import csv 
with open('yourfile.csv', 'rb') as file: 
    reader = csv.reader(file, delimiter='\t') 
    for row in reader: 
     print ', '.join(row) 
0

我要去承担,因为它看起来像它排序的数据是由'\t'字符分隔。

由于只有内置的Python:

with open(filename, 'rt') as f: 
    table = [line.rstrip('\r\n').split('\t') for line in f] 

随着标准csv模块:

import csv 
with open(filename, 'rt') as f: 
    table = csv.reader(f, delimiter='\t') 
    # you could then iterate over `table` or convert it to a static list by saying table=list(table) 

两种解决方案可以让你一个嵌套的序列,其中的各个项目都是字符串,如:

[['header1', 'header2', 'header3'], ['abc', '1.12', 'abc'], ['str1', '5.00', 'str2']] 

你也可以考虑安装流行的第三方Y封装pandas,它可以让您垂直或水平切片表,并做不同类型的魔法吧:

import pandas 
table = pandas.read_csv(filename, sep='\t') 

它得到你:

>>> table 
    header1 header2 header3 
0  abc  1.12  abc 
1 str1  5.00 str2 

[2 rows x 3 columns] 

>>> table['header1'][0] 
'abc' 
相关问题