LINUX.ORG.RU

CSV в многомерный массив

 ,


0

2

Помогите загнать данные из файла file.csv в многомерный массив. Например имеем файл csv c видом

a;b;c;d;e; a2;b2;c2;d2;e2; a3;b3;c3;d3;e3;

(5 столбцов, три строки). Нужно получить массив c данными, к которому можно обращатся в виде array[1:1]



Последнее исправление: malody (всего исправлений: 1)

JS

s="a;b;c;d;e;\na2;b2;c2;d2;e2;\na3;b3;c3;d3;e3;"

arr=s.split("\n").map(function(s){return s.split(";").filter(function(x){return x !== ""})})
//[ [ 'a', 'b', 'c', 'd', 'e' ],
//  [ 'a2', 'b2', 'c2', 'd2', 'e2' ],
//  [ 'a3', 'b3', 'c3', 'd3', 'e3' ] ]
только обращаться arr[1][1]

javaQest
()
Ответ на: комментарий от javaQest

вот так короче

s="a;b;c;d;e;\na2;b2;c2;d2;e2;\na3;b3;c3;d3;e3;"

arr=s.split("\n").map(function(s){return s.match(/[^;]+/g)})

javaQest
()
Ответ на: комментарий от malody
import csv 
import sys
file_name = sys.argv[1]
with open(file_name,"rU") as f:
    my_super_array = list(csv.reader(f,delimiter=";"))
zolden ★★★★★
()

Есть готовое решение на Python: Two dimensional dictionary, list or array from CSV file in Python

>>> import pandas as pd
>>> names = ['0.10', '0.15', '0.20', '0.25', '0.30', '0.35', '0.40']
>>> i = pd.read_csv('test.csv', delim_whitespace=True, names=names)
>>> i
     0.10    0.15    0.20    0.25    0.30    0.35    0.40
0 -0.0011  0.0008  0.0019  0.0034  0.0067  0.0047 -0.0026
1  0.0134 -0.3042 -0.2531 -0.2138 -1.2345 -0.2380  2.0402
2  0.0546  0.2708  0.1738  0.0810  0.8451 -0.0034 -1.4961
3 -0.0226 -0.0052 -0.0021 -0.0024 -0.0023 -0.0745  0.0563
4 -0.0101  0.0108  0.0153  0.0263  0.0491  0.0327 -0.0691
>>> i['0.10'][0]
-0.0011000000000000001

или такое, с помощью классического numpy:

numpy.loadtxt(open("test.csv","rb"),delimiter=",",skiprows=1)
import csv
import numpy
reader=csv.reader(open("test.csv","rb"),delimiter=';')
x=list(reader)
result=numpy.array(x).astype('float')
print result

пример CSV
1;2;3
3;4;5
5;6;7

% ./load.py
[[ 1.  2.  3.]
 [ 3.  4.  5.]
 [ 5.  6.  7.]]

Не забудьте установить numpy, http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/

pacify ★★★★★
()
Последнее исправление: pacify (всего исправлений: 1)

Надо было во время семестра учиться, студент, а не бухать. Давай, вали со своими лабораторками с моего лора, не загаживай его.

anonymous
()
Ответ на: комментарий от anonymous

Я не студент, и решение нужно по работе. И не по моей специальности, просто хочу облегчить трудовой процесс.

malody
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.