Hoe importeer ik een csv-bestand in een data-array?

Ik heb een regel code in een script dat gegevens importeert uit een tekstbestand met veel spaties tussen waarden in een array om later te gebruiken.

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)

Ik moet dit wijzigen van een tekstbestand in een csv-bestand. Ik wil deze tekst niet zomaar wijzigen om op komma’s te splitsen (aangezien sommige waarden komma’s kunnen hebben als ze tussen aanhalingstekens staan). Gelukkig zag ik dat er een csv-bibliotheek is die ik kan importeren en die dit aankan.

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

Hoe kan ik het csv-bestand in de gegevensarray laden?

Als het een verschil maakt, is dit hoe de gegevens worden gebruikt:

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

Antwoord 1, autoriteit 100%

Ervan uitgaande dat het CSV-bestand wordt gescheiden door komma’s, is de eenvoudigste manier om de module csvin Python 3te gebruiken waarschijnlijk:

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

U kunt andere scheidingstekens opgeven, zoals tabtekens, door ze op te geven bij het maken van de csv.reader:

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

Voor python & nbsp; 2 , gebruik open('testfile.csv', 'rb')om het bestand te openen.


Antwoord 2, Autoriteit 32%

U kunt Panda’s Bibliotheek of Numpy gebruiken om het CSV-bestand te lezen. Als uw bestand tabblad is, gebruikt u vervolgens ‘\ t’ in plaats van komma in zowel sepen delimiterargumenten hieronder.

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

of

import numpy as np
 myFile = np.genfromtxt('filepath', delimiter=',')

Antwoord 3, Autoriteit 3%

Ik denk dat de eenvoudigste manier om dit te doen is via Pandas:

import pandas as pd
data = pd.read_csv(FILE).values

Hiermee geeft u een numpy-reeks waarden weer van een dataframe gemaakt van de CSV. Zie de documentatie hier .

Other episodes