0
votes

Supprimer l'espace blanc de l'ensemble de lataframe

J'ai un Dataframe, 22 colonnes et 65 rangées. Les données sont entrées dans le fichier CSV. Chacune des valeurs avec Dataframe a une épesse blanche extra non désirée. Donc, si je fais une boucle sur la colonne "Année" avec un len (), j'obtiens xxx

Ce 1 espace supplémentaire apparaît dans tout DF dans chaque valeur. J'ai essayé d'exécuter un .strip () sur df mais aucun attribut n'existe

J'ai essayé un 'pour chaque df [colonne] .str.strip () mais il existe divers types de données dans chaque colonne ... DTYPES : Float64 (6), INT64 (4), objet (14), de sorte que ces erreurs.

Des idées sur la manière d'appliquer une fonction pour l'ensemble de laacrame, et si oui, quelle fonction / méthode? Si ce n'est pas ce qui est le meilleur moyen de gérer?


0 commentaires

3 Réponses :


0
votes

Vous devez utiliser appliquer () code> fonction afin de le faire: xxx pré>

Vous pouvez appliquer cette fonction sur chaque colonne séparément: p>

for column in df.columns:
    df[column] = df[column].apply(lambda x:x.strip() )


0 commentaires

0
votes

Gérer l'erreur:

import pandas as pd

df = pd.DataFrame({'foo': [1, 2, 3], 'bar': ['seven ']*3})
df['foo2'] = df.foo.astype(object)

for col in df.select_dtypes('object'):
    df[col] = df[col].str.strip()
#AttributeError: Can only use .str accessor with string values!


0 commentaires

0
votes

Essayez ceci:

for column in df.columns:
    df[column] = df[column].apply(lambda x: str(x).replace('  ', ' '))


2 commentaires

C'est absolument faux, il semble que vous ne considérez pas le cas que la chaîne a '' entre deux mots


Non, cela représente réellement le problème de la question de savoir 2019 5 2019 5 2018 5 ... qui a de l'espace entre deux mots / int ou dates