Df = x1, x2, x3, x4, x5 ... x90, 'ignorer' 37,4, 35,6, 43,5, 33,3, 42,4 ... 42,5, 'ignorer' 32,2, 37,2, 43,4, 34,3, 82,4 ... 22,1, 44 33,5, 45,5, 25,9, 23,8, 24,2 ... 52,2, vrai 35,4, 30,6, 33,3, 33,3, 42,5 ... 82 ....
2 réponses
df.update(df.iloc[:,0:90].div(df.max(axis=1), axis=0))
Tout d'abord, vous devez saisir la partie de la trame de données sur laquelle vous souhaitez effectuer la division: df.iloc[:,0:90]
ce qui signifie que pour chaque ligne, choisissez les colonnes de 0 à 89.
Ensuite, vous saisissez le maximum de chaque ligne avec: df.max(axis=1)
. Parce que votre colonne ignore n'a pas toutes les valeurs numériques, elle serait ignorée par la fonction max
donc pas de soucis à ce sujet.
Ensuite, vous faites une division avec axis=0
signifiant cette division sur chaque ligne.
Et, à la dernière étape, vous mettez à jour le dataframe.
Essayez d'utiliser la fonction apply link
Supprimez toute colonne de chaîne ou d'objet et stockez-la dans une autre variable et concaténez-la après l'opération que j'ai créée le cadre de données de taille
df.shape
Out[38]: (1000000, 91)
col = pd.DataFrame(df['col_str']) # Storing Categorical Col
df = df.drop('col_str', axis=1) # Dropping the col
start = datetime.now()
tmp = df.apply(lambda x : x/max(x), axis=1, raw=True)
print(datetime.now()-start)
0:00:16.693436
Il a fallu environ 16 secondes
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.