Lorsque j'ai essayé d'importer le fichier obtenu au format csv avec des pandas et de le traiter, l'en-tête et les données étaient mal alignés, mais de manière inattendue, je n'ai pas pu atteindre la réponse immédiatement, j'ai donc écrit un article. [Aller à la solution](# solution)
Je l'ai exécuté dans l'environnement suivant.
module | version |
---|---|
python | 3.8.3 |
pandas | 1.0.5 |
Importez le fichier au format csv suivant en tant que DatFrame.
example.csv
Time x y z
0 1 2 10
1 2 2 10
2 3 2 10
..
Importez en utilisant read_csv ()
.
read_csv.py
import pandas as pd
path = 'chemin du fichier csv'
df = pd.read_csv(path)
print(df)
Le résultat de sortie dans le terminal est le suivant.
# Time\tx\ty\tz
# 0 1\t1\t2\t10
# 1 2\t2\t2\t10
# 2 3\t3\t2\t10
..
Il y a un «\ t» supplémentaire dedans. Il semble qu'il était séparé par des tabulations (format tsv) au lieu d'être séparés par des virgules.
Essayez de l'exécuter avec read_tabel ().
read_tsv.py
import pandas as pd
path = 'chemin du fichier csv'
df = pd.read_table(path)
print(df)
Le résultat de sortie est le suivant.
Le \ t
a disparu, mais à la place l'en-tête et les données sont mal alignés et toutes les données z sont maintenant NaN.
# Time x y z
# 0 1 2 10 NaN
# 1 2 2 10 NaN
# 2 3 2 10 NaN
Donnez un argument à read_csv ()
comme suit:
read_csv_2.py
import pandas as pd
path = 'chemin du fichier csv'
df = pd.read_csv(path, sep='\s+')
print(df)
Selon la documentation padas, les arguments donnés aux fichiers sont séparés par un ou plusieurs caractères. Il semble que. Il semble que la cause était que les données d'origine étaient séparées par des tabulations et des espaces ... Veuillez me pardonner ... lol.
J'ai pu convertir correctement l'en-tête et les données en DataFrame en donnant l'argument sep = '\ s +'
tocsv_read ()
pour les données séparées par des tabulations et des espaces.
Recommended Posts