importation de texte pour les pandas avec plusieurs séparateurs
J'ai des données qui ressemble à ceci:
c stuff
c more header
c begin data
1 1:.5
1 2:6.5
1 3:5.3
Je veux l'importer dans une colonne 3 du bloc de données, avec des colonnes par exemple
a , b, c
1, 1, 0.5
etc
J'ai essayé de lire dans les données que 2 colonnes de fractionnement sur ':', puis de diviser la première colonne de ' '. Cependant, je suis de trouver qu'il est irritant.
Est-il un meilleur moyen de faire le tri sur les importation directement?
actuellement:
data1 = pd.read_csv(file_loc, skiprows = 3, delimiter = ':', names = ['AB', 'C'])
data2 = pd.DataFrame(data1.AB.str.split(' ',1).tolist(), names = ['A','B'])
Cependant, c'est encore compliqué par le fait que mes données a un espace...
Je me sens comme ce devrait être une tâche simple, mais actuellement je pense que je vais le lire ligne par ligne et à l'aide de certains trouvent remplacer à assainir les données avant de les importer.
OriginalL'auteur CastleH | 2014-10-24
Vous devez vous connecter pour publier un commentaire.
Une des solutions pourrait être d'utiliser les regex séparateurs permise par le python moteur. Par exemple:
Je me sens un peu embarresed de ne pas remarquer le " sep " argument dans les docs maintenant... :-/
Pourquoi je reçois un
ParserError
lorsque j'utilise cette méthode?pandas.errors.ParserError: Expected 29 fields in line 11, saw 45. Error could possibly be due to quotes being ignored when a multi-char delimiter is used.
Ou dans le cas d'un seul caractère séparateurs, une classe de caractères
sep='[ :]'
.OriginalL'auteur DSM