我有一個包含字符串單元格的CSV文件,我想將它導入python。我的文件是這樣的:帶有python字符串的CSV文件
header1 header2 header3
abc 1.12 abc
str1 5.00 str2
我想在Python中看到相同的格式作爲數組。我怎樣才能做到這一點?
我有一個包含字符串單元格的CSV文件,我想將它導入python。我的文件是這樣的:帶有python字符串的CSV文件
header1 header2 header3
abc 1.12 abc
str1 5.00 str2
我想在Python中看到相同的格式作爲數組。我怎樣才能做到這一點?
要轉換(假設製表符分隔)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
中包含標題,請將標題行註釋掉。
您可以使用csv庫:CSV File Reading and Writing。
例與標籤分隔的csv文件:
import csv
with open('yourfile.csv', 'rb') as file:
reader = csv.reader(file, delimiter='\t')
for row in reader:
print ', '.join(row)
我要去承擔,因爲它看起來像它排序的數據是由'\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'
完美,謝謝。現在我可以在int中轉換str2的格式了! – sunny