2017-07-07 2 views
0

J'ai un fichier tsv que j'essaie de lire à l'aide de pandas. Les deux premières lignes des fichiers sont inutiles et doivent être ignorées. Bien que, quand j'obtiens la sortie, je l'obtiens sous la forme de deux colonnes. Le nom de la première colonne est Index et le nom de la deuxième colonne est une ligne aléatoire du fichier CSV.Impossible d'obtenir la sortie correcte du fichier tsv en utilisant des pandas

import pandas as pd 

data = pd.read_csv('zahlen.csv', sep='\t', skiprows=2) 

Veuillez vous reporter à la capture d'écran ci-dessous. Le deuxième nom de colonne est en gras noir, qui est l'un des rangs du fichier. De plus, l'utilisation de '\ t' comme délimiteur ne sépare pas les valeurs dans une colonne différente. J'utilise Spyder IDE pour cela. Est-ce que je fais quelque chose de mal ici?

+0

Je pense que vous avez besoin d'un en-tête = Aucun comme argument dans read_csv – DJK

+0

Merci @ djk47463. Utilisation de l'en-tête = Aucun n'a supprimé la ligne du nom de la colonne, mais les valeurs ne se divisent pas dans les différentes colonnes. Ai-je besoin de séparer explicitement? –

Répondre

2

Essayez ceci:

data = pd.read_table('zahlen.csv', header=None, skiprows=2) 

read_table() est plus adapté pour les fichiers TSV et read_csv() est une version plus spécialisée de celui-ci. Ensuite, header=None fera des données de première ligne, au lieu de l'en-tête.

+0

Avec le code ci-dessus, je reçois juste une seule colonne en sortie sans en-tête. –

+0

êtes-vous sûr que vous avez des onglets comme séparateurs? pouvez-vous ajouter 'sep = '\ s +'' à read_table() 'ci-dessus et voir ce qui se passe? – mkos

+0

Aucun changement avec l'ajout de sep. Je ne suis pas non plus très sûr du caractère de séparation dans le fichier, mais jusqu'à maintenant j'ai essayé '\ t', '' et '\ s +'. Tous les trois retournent malheureusement le même résultat. –