Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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
like image 549
GFL Avatar asked Oct 06 '17 22:10

GFL


People also ask

How do I import a CSV file into an array?

Use numpy. loadtxt() to Read a CSV File Into an Array in Python. As the name suggests, the open() function is used to open the CSV file. NumPy's loadtxt() function helps in loading the data from a text file.

How will you upload sample CSV file with the delimiter as an array?

Python NumPy read CSV into 2d NumPy array txt() and open() functions to load a CSV file into a 2Dimension NumPy Array. Call open file to open the CSV text file Use numpy. loadtxt( CSV file, delimiter) with the file as the result of the previous step and delimiter as “,” to return the data in a two-dimensional NumPy.

How do I import a CSV file into data?

On the File menu, click Import. In the Import dialog box, click the option for the type of file that you want to import, and then click Import. In the Choose a File dialog box, locate and click the CSV, HTML, or text file that you want to use as an external data range, and then click Get Data.


2 Answers

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) 

You can specify other delimiters, such as tab characters, by specifying them when creating the csv.reader:

    data = list(csv.reader(csvfile, delimiter='\t')) 

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

like image 84
martineau Avatar answered Sep 29 '22 11:09

martineau


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

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

Or

 import numpy as np
 myFile = np.genfromtxt('filepath', delimiter=',')
like image 32
Humi Avatar answered Sep 29 '22 11:09

Humi