Maison >développement back-end >Tutoriel Python >Comment les pandas peuvent-ils gérer les espaces irréguliers dans la séparation CSV ?

Comment les pandas peuvent-ils gérer les espaces irréguliers dans la séparation CSV ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 08:18:30318parcourir

How Can Pandas Handle Irregular Whitespace in CSV Separation?

Rendre les séparateurs CSV plus flexibles pour les espaces irréguliers dans Pandas

Lors de l'utilisation de pandas.read_csv() pour créer des trames de données à partir de fichiers avec des séparateurs de colonnes irréguliers , rencontrer des difficultés est courant. Certaines colonnes peuvent être séparées par des tabulations, tandis que d'autres sont séparées par un nombre variable d'espaces ou même par un mélange d'espaces et de tabulations. Cette irrégularité peut entraîner des problèmes d'analyse.

Pour résoudre ce problème, pandas propose deux options : utiliser une expression régulière (regex) ou définir delim_whitespace.

Utiliser une expression régulière

L'option regex vous permet de spécifier un modèle pour le séparateur. Par exemple :

<code class="python">import pandas as pd
df = pd.read_csv("file.csv", header=None, delimiter=r"\s+")</code>

Ici, r"s " correspond à un ou plusieurs caractères d'espacement (y compris les espaces et les tabulations).

Utilisation de delim_whitespace

L'option delim_whitespace=True détecte automatiquement les espaces (espaces et tabulations) comme séparateurs :

<code class="python">df = pd.read_csv("file.csv", header=None, delim_whitespace=True)</code>

Comparaison avec la méthode split() de Python

Vous avez mentionné cela en Python , vous pouvez utiliser line.split() pour gérer les espaces variables sans problème. pandas.read_csv() offre une flexibilité similaire grâce aux options delim_whitespace et regex.

Exemple

Utilisation du fichier d'entrée suivant (whitespace.csv) :

a    b    c 1 2
d    e    f 3 4

Le code suivant créera un dataframe avec une séparation de colonnes correcte, quel que soit le type de séparateur :

<code class="python">df = pd.read_csv("whitespace.csv", header=None, delim_whitespace=True)

print(df)

   0  1  2  3  4
0  a  b  c  1  2
1  d  e  f  3  4</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn