Écrit Panda Dataframes au format de fichier csv en morceaux
J'ai un ensemble de fichiers de données volumineux (1M lignes x 20 cols). Toutefois, seulement 5 ou si les colonnes de données d'intérêt pour moi.
Je me dis que je peut rendre les choses plus facile pour moi en créant des copies de ces fichiers avec uniquement les colonnes d'intérêt donc, j'ai des fichiers plus petits pour travailler avec un post-traitement.
Mon plan était de lire le fichier dans un dataframe et puis les écrire dans un fichier csv.
J'ai été à la recherche en lecture de gros fichiers de données en morceaux dans un dataframe.
Cependant, je n'ai pas été en mesure de trouver quoi que ce soit sur la façon d'écrire les données dans un fichier csv en morceaux.
Voici ce que je vais essayer maintenant, mais cela ne veut pas ajouter le fichier csv:
with open(os.path.join(folder, filename), 'r') as src:
df = pd.read_csv(src, sep='\t',skiprows=(0,1,2),header=(0), chunksize=1000)
for chunk in df:
chunk.to_csv(os.path.join(folder, new_folder,
"new_file_" + filename),
columns = [['TIME','STUFF']])
OriginalL'auteur user1964692 | 2016-07-22
Vous devez vous connecter pour publier un commentaire.
Essayer:
La
mode='a'
dit pandas à ajouter.os.path.join(folder, new_folder, "new_file_" + filename)
Merci pour la capture!
J'ai remarqué que lorsque je ajouter à l'aide du mode='a', la colonne des étiquettes sont écrites après chaque morceau. Comment puis-je m'assurer que les étiquettes de colonne n'apparaissent au début du fichier?
Vous pouvez passer de l'en-tête=None pour tous, mais le premier morceau
OriginalL'auteur Scratch'N'Purr
Découvrez la
chunksize
argument dans leto_csv
méthode. Ici sont les docs.L'écriture dans le fichier devrait ressembler:
C'est complet d'un DataFrame.
ce n'est pas utile lors de la diffusion d'un géant dataframe à partir d'un fichier à l'autre, dans ce cas, mode='a' est mieux.
OriginalL'auteur Alex
Pourquoi ne pas seulement lire les colonnes de l'intérêt et de l'enregistrer?
Correct, mais il est toujours beaucoup plus efficace. Si c'était le cas, vous auriez encore besoin de morceau ou d'utiliser le module csv.
OriginalL'auteur Alexander