Python Pandas ne pas lire la première ligne du fichier csv
J'ai un problème avec la lecture(fichier CSV ou txt) sur les pandas module
Parce que numpy est loadtxt fonction prend trop de temps, j'ai décidé d'utiliser les pandas read_csv à la place.
Je veux faire un tableau numpy partir d'un fichier txt avec quatre colonnes séparées par un espace, et a un très grand nombre de lignes (comme, 256^3. Dans cet exemple, il est de 64^3).
Le problème est que je ne sais pas pourquoi, mais il semble que les pandas du read_csv toujours ignore la première ligne (première ligne) de la csv txt (fichier, entraînant une moins de données.
voici le code.
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] et g[0] qui est affichée comme une sortie a pour beaucoup mais il n'a pas, indiquant que les pandas est ignorer la première ligne de la Testarray.txt
.
Aussi, la longueur de chargement de fichier g
est inférieure à la longueur de la matrice f
.
J'ai besoin d'aide.
Merci d'avance.
oh, c'est juste un exemple. Im intéressé par la lecture-Il pas de l'enregistrer. merci!!!!
OriginalL'auteur Tom | 2015-02-07
Vous devez vous connecter pour publier un commentaire.
Par défaut,
pd.read_csv
utiliseheader=0
(lorsque lenames
paramètre est pas non spécifiée) ce qui signifie que le premier (c'est à dire 0e-indexé) de la ligne est interprété comme noms de colonne.Si vos données n'a pas d'en-tête, puis utilisez
Par exemple,
Sans
header
, la première ligne,1 2 3
, définit les noms de colonne:Avec
header=None
, la première ligne est traitée comme données:imprime
Mais nous ne pouvons pas accéder aux valeurs de dataframes lors de l'itération sur Panda dataframes via
iterrows
et à l'aide derow[column]
pour accéder à la valeur de trames de données.OriginalL'auteur unutbu
Si votre fichier n'a pas une ligne d'en-tête, vous devez dire Pandas en utilisant l'en-tête=None dans votre appel à pd.read_csv().
OriginalL'auteur RustProof Labs