237 votes

Comment charger un fichier tsv dans un DataFrame Pandas ?

Je suis novice en matière de python et de pandas. J'essaie d'obtenir un tsv chargé dans un fichier pandas DataFrame .

Voici ce que j'essaie de faire et l'erreur que j'obtiens :

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__
    raise PandasError('DataFrame constructor not properly called!')
PandasError: DataFrame constructor not properly called!

17 votes

Pour ceux qui viennent à cette réponse en 2017+, utilisez read_csv('path_to_file', sep='\t') . Voir cette réponse ci-dessous

0 votes

Merci @TedPetrou

283voto

dbaupp Points 20762

El .read_csv fait ce que vous voulez :

pd.read_csv('c:/~/trainSetRel3.txt', sep='\t')

Si vous avez un en-tête, vous pouvez passer header=0 .

pd.read_csv('c:/~/trainSetRel3.txt', sep='\t', header=0)

Nota : Prior 17.0, pd.DataFrame.from_csv était utilisé (il est maintenant déprécié et l'option le site .from_csv lien de documentation redirige vers la page de pd.read_csv ).

112voto

tuva Points 885

A partir de 17.0 from_csv est découragée.

Utilisez pd.read_csv(fpath, sep='\t') o pd.read_table(fpath) .

7 votes

Remarque : read_table est déprécié depuis la version 0.24.0. Utilisez pandas.read_csv() à la place.

70voto

Wes McKinney Points 17545

Utilisez pandas.read_table(filepath) . Le séparateur par défaut est la tabulation.

2 votes

Read_table ne nécessite aucun paramètre. Cela fonctionne parfaitement.

25voto

Mohsin Ashraf Points 637

Essayez ceci

df = pd.read_csv("rating-data.tsv",sep='\t')
df.head()

enter image description here

Vous devez en fait réparer le sep paramètre.

9voto

ankit srivastava Points 116

Ouvrez le fichier, sauvegardez-le au format .csv et appliquez-le.

df = pd.read_csv('apps.csv', sep='\t')

pour tout autre format également, il suffit de changer la balise sep

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