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?
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.
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.
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"])
tu peux utiliser ça
import pandas as pd
dataset=pd.read_csv("filepath.txt",delimiter="\t")
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")
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)
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