web-dev-qa-db-fra.com

Charger les données depuis txt avec pandas

Je charge un fichier txt contenant un mélange de données float et string. Je veux les stocker dans un tableau où je peux accéder à chaque élément. Maintenant je fais juste

import pandas as pd

data = pd.read_csv('output_list.txt', header = None)
print data

Voici la structure du fichier d'entrée: 1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt.

Maintenant, les données sont importées sous forme de colonne unique. Comment puis-je le diviser pour stocker différents éléments séparément (pour pouvoir appeler data[i,j])? Et comment puis-je définir un en-tête?

101
albus_c

Vous pouvez utiliser:

data = pd.read_csv('output_list.txt', sep=" ", header=None)
data.columns = ["a", "b", "c", "etc."]

Ajoutez sep=" " dans votre code, en laissant un espace vide entre les guillemets. Ainsi, pandas peut détecter les espaces entre les valeurs et trier les colonnes. Les colonnes de données servent à nommer vos colonnes.

140
pietrovismara

J'aimerais ajouter aux réponses ci-dessus, vous pouvez directement utiliser

df = pd.read_fwf('output_list.txt')

fwf représente les lignes formatées à largeur fixe.

48

La solution de @ Pietrovismara est correcte, mais j'aimerais juste ajouter ceci: plutôt que d'avoir une ligne séparée pour ajouter des noms de colonnes, il est possible de faire cela à partir de pd.read_csv.

df = pd.read_csv('output_list.txt', sep=" ", header=None, names=["a", "b", "c"])
27
Sam Perry

tu peux utiliser ça

import pandas as pd
dataset=pd.read_csv("filepath.txt",delimiter="\t")
18
ramakrishnareddy

Vous pouvez faire comme:

import pandas as pd
df = pd.read_csv('file_location\filename.txt', delimiter = "\t")

(comme, df = pd.read_csv ('F:\Bureau\ds\text.txt', délimiteur = "\ t")

7
tulsi kumar

Si aucun index n'est affecté aux données et que vous n'êtes pas sûr de l'espacement, vous pouvez utiliser pour laisser pandas attribuer un index et rechercher plusieurs espaces.

df = pd.read_csv('filename.txt', delimiter= '\s+', index_col=False)
5
bfree67

Vous pouvez importer le fichier texte à l'aide de la commande read_table de la manière suivante:

import pandas as pd
df=pd.read_table('output_list.txt',header=None)

Le prétraitement devra être effectué après le chargement

2
Kaustubh J