Comment puis-je normaliser les données dans une plage de colonnes dans mes pandas dataframe
Supposons que j'ai une pandas bloc de données surveyData:
Je veux normaliser les données dans chaque colonne en effectuant:
surveyData_norm = (surveyData - surveyData.mean()) / (surveyData.max() - surveyData.min())
Cela fonctionnerait bien si mon tableau de données ne contient que les colonnes j'ai voulu normaliser. Cependant, j'ai quelques colonnes contenant des données de chaîne précédente comme:
Name State Gender Age Income Height
Sam CA M 13 10000 70
Bob AZ M 21 25000 55
Tom FL M 30 100000 45
Je veux seulement de normaliser l'Âge, le Revenu, et la Hauteur des colonnes, mais ma méthode ci-dessus ne fonctionne pas parce que de la chaîne de données au nom de l'état et de l'égalité des sexes colonnes.
je ne peux pas vous essai d'utilisation: .... à l'exception ValueError: ...... de modèle. Vous pouvez passer à la normalisation de la fonction sur les colonnes de la chaîne. Il y a peut être plus de plus de " pandastic façon de faire.
OriginalL'auteur Jeremy | 2015-02-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez effectuer des opérations sur un sous-ensemble de lignes ou de colonnes dans les pandas dans un certain nombre de façons. Un moyen utile est d'indexation:
Cela s'appliquera uniquement les colonnes que vous désirez et d'affecter le résultat de ces colonnes. Sinon, vous pouvez les régler à nouveau normalisé de colonnes et de conserver les originaux si vous voulez.
.....
mean
doit être modifié pourmin
dans lelambda
fonction.Yep. Si ce que vous êtes après est fonction de mise à l'échelle de chaque colonne [0,1] alors, comme @Amin dit, l'usage (x - x.min()) / (x.max() - x.min()) par la formule
OriginalL'auteur cwharland
Façon Simple et plus efficace:
Pré-calculer la moyenne:
dropna()
éviter de données manquantes.cette façon de travailler...
OriginalL'auteur Alvaro Joao
Je pense qu'il est préférable d'utiliser 'sklearn.prétraitement " dans ce cas, qui peut nous donner beaucoup plus d'options d'échelle.
La façon de le faire dans votre cas lors de l'utilisation de StandardScaler serait:
OriginalL'auteur Yaron