Question: How to import a csv-file into a data array?

Question

How to import a csv-file into a data array?

Answers 2
Added at 2017-10-07 00:10
Tags
Question

I have a line of code in a script that imports data from a text file with lots of spaces between values into an array for use later.

textfile = open('file.txt')
data = []
for line in textfile:
    row_data = line.strip("\n").split()
    for i, item in enumerate(row_data):
        try:
            row_data[i] = float(item)
        except ValueError:
            pass
    data.append(row_data)

I need to change this from a text file to a csv file. I don't want to just change this text to split on commas (since some values can have commas if they're in quotes). Luckily I saw there is a csv library I can import that can handle this.

import csv
with open('file.csv', 'rb') as csvfile:
    ???

How can I load the csv file into the data array?

If it makes a difference, this is how the data will be used:

row = 0
for row_data in (data):
    worksheet.write_row(row, 0, row_data)
    row += 1
Answers to

How to import a csv-file into a data array?

nr: #1 dodano: 2017-10-07 00:10

You can use pandas library or numpy to read the CSV file. If your file is tab seperated then use '\t' in place of comma in both sep and delimiter argument below.

import pandas as pd 
myFile = pd.read_csv('filepath', sep=',')

Or

 import numpy as np
 myFile = np.genfromtxt('filepath,' delimiter=',')
nr: #2 dodano: 2017-10-07 00:10

Assuming the csv file is delimited with commas, the simplest way using the csv module in Python 3 would probably be:

import csv

with open('testfile.csv', newline='') as csvfile:
    data = list(csv.reader(csvfile))

print(data)

For Python 2, use open('testfile.csv', 'rb') to open the file.

Source Show
◀ Wstecz