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   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  p>   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.  p>   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?  p>  p>                        
3 Réponses :
 Vous devez utiliser   Vous pouvez appliquer cette fonction sur chaque colonne séparément:  p>  appliquer ()  code> fonction afin de le faire: for column in df.columns:
    df[column] = df[column].apply(lambda x:x.strip() )
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!
                                Essayez ceci:
for column in df.columns:
    df[column] = df[column].apply(lambda x: str(x).replace('  ', ' '))
                                
                                                    C'est absolument faux, il semble que vous ne considérez pas le cas que la chaîne a  ''  code> entre deux mots                                                
                                                    Non, cela représente réellement le problème de la question de savoir  2019 5 2019 5 2018 5 ...  code> qui a de l'espace entre deux mots / int ou dates