Ho un problema con la lettura CSV (o file txt) sul modulo panda Poiché la funzione di loadtxt NumPy richiede troppo tempo, ho deciso di usare i panda read_csv invece.Python Panda non leggere la prima riga del file CSV
Voglio creare una matrice numpy da file txt con quattro colonne separate da spazio e ha un numero molto elevato di righe (come, 256^3. In questo esempio, è 64^3).
Il problema è che non so perché, ma sembra che read_csv di panda salti sempre la prima riga (prima riga) del file csv (txt), risultando un dato in meno.
questo è il codice.
from __future__ import division
import numpy as np
import pandas as pd
ngridx = 4
ngridy = 4
ngridz = 4
size = ngridx*ngridy*ngridz
f = np.zeros((size,4))
a = np.arange(size)
f[:, 0] = np.floor_divide(a, ngridy*ngridz)
f[:, 1] = np.fmod(np.floor_divide(a, ngridz), ngridy)
f[:, 2] = np.fmod(a, ngridz)
f[:, 3] = np.random.rand(size)
print f[0]
np.savetxt('Testarray.txt',f,fmt='%6.16f')
g = pd.read_csv('Testarray.txt',delimiter=' ').values
print g[0]
print len(g[:,3])
f [0] eg [0] che viene visualizzato come uscita deve molto ma non, indicando che i panda è saltare la prima riga del Testarray.txt
. Inoltre, la lunghezza del file caricato g
è inferiore alla lunghezza dell'array f
.
Ho bisogno di aiuto.
Grazie in anticipo.
perché stai risparmiando in numpy e poi leggendo in panda? Potrebbe essere lento, invece convertire l'array in numpy in dataframe pandas quindi scrivere in csv. È molto più veloce. – pbu
oh, è solo un esempio. Sono interessato a leggerlo non salvandolo. grazie! – Tom