7

I am trying to import big csv files which contain both string and numeric matrix of data into Arrays/matrices in Python. In MATLAB I used to load the file and simply assign it to a matrix but it seems to be a bit tricky in Python. Could somebody advise please? I am quite new in Python. Thanks all.

3 Answers 3

10

You can use the built-in csv module to load your data to a multidimensional list in Python 2:

import csv

with open('data.csv', 'rb') as f:
    reader = csv.reader(f)
    data_as_list = list(reader)

print data_as_list
# [['data1', 1],
#  ['data2', 2],
#  ['data3', 3]]

And with Python 3:

import csv

with open('data.csv', 'rt') as f:
    reader = csv.reader(f)
    data_as_list = list(reader)

print(data_as_list)
# [['data1', 1],
#  ['data2', 2],
#  ['data3', 3]]
Sign up to request clarification or add additional context in comments.

Comments

5

You can use pandas.

import pandas as pd
df = pd.from_csv('filename.csv')

If the delimiter is not ',' you can change the default value by using the sep keyword, for example:

df = pd.from_csv('filename.csv', sep='\')

You will get a dataframe that comes with powerful analysis functions.

2 Comments

Thanks DeepSpace. I got the following error: ImportError: No module named 'pandas'
@user3376020 It's a library that you need to install, I'm sorry if it wasn't clear in my answer. Try `pip install pandas' from the command line, or visit pypi.python.org/pypi/pandas/0.16.0/#downloads
0
import numpy as np
with open("your_file.csv",'r')as f :
    data_list = list(csv.reader(f, delimiter=";"))
data_array=np.array(data_list[1:])


2 Comments

Put triple ``` above and below your code to format it
Please include some explanation along with your code.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.