2 votes

Exportation d'une colonne de texte par Pandas sous la forme d'un fichier texte unique, non encodé.

Je voudrais exporter l'ensemble de la concaténation d'une seule colonne de dataframe, vers un fichier, pour l'utiliser comme un gros blob de texte, pour une tâche d'apprentissage automatique non supervisée en aval. (avec ou sans caractère séparateur entre les chaînes de caractères).

Il semble que le graveur csv de pandas ne soit pas conçu pour ce cas particulier, il insiste sur l'échappement des caractères, alors qu'il devrait le faire.

df.to_csv('output.txt', columns = ['tokens'], header=False, index=False, quoting=csv.QUOTE_NONE)

_csv.Error : besoin d'échapper, mais aucun caractère d'échappement n'a été défini.

C'est très compréhensible, car les paquets csv étendent leurs méthodes pour la symétrie, et ne pas échapper signifie une rue à sens unique.

Comment voulez-vous efficacement cracher la concaténation des valeurs d'une seule colonne de dataframe, étant donné que le dataframe compte au moins un million de lignes ?

16voto

coldspeed Points 111053

Vous aurez des problèmes de citation tant que vous utiliserez un rédacteur CSV pour écrire du texte brut. Pourquoi ne pas itérer et écrire directement dans un fichier texte ?

with open('output.txt', 'w') as f:
    for text in df['tokens'].tolist():
        f.write(text + '\n')

Ou, en une seule ligne,

with open('output.txt', 'w') as f:
    f.write(df['tokens'].str.cat(sep='\n'))

2voto

matt Points 946

Étant donné que tokens est le nom de la colonne du dataframe :

from pathlib import Path

as_one_long_blurb = output.tokens.str.cat(sep='\n')
Path('tokens.txt').write_text(as_one_long_blurb)

J'aime cette variante dans la mesure où elle peut se résumer à une seule ligne de code à part l'importation globale.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X