414 Stimmen

Was bedeutet Achse in Pandas?

Hier ist mein Code zum Generieren eines DataFrames:

import pandas as pd
import numpy as np

dff = pd.DataFrame(np.random.randn(1,2),columns=list('AB'))

dann habe ich das DataFrame erhalten:

+------------+---------+--------+
|            |  A      |  B     |
+------------+---------+---------
|      0     | 0.626386| 1.52325|
+------------+---------+--------+

Wenn ich den Befehl eingebe :

dff.mean(axis=1)

Ich erhielt :

0    1.074821
dtype: float64

Laut der Referenz von Pandas steht axis=1 für Spalten und ich erwarte, dass das Ergebnis des Befehls wie folgt aussieht:

A    0.626386
B    1.523255
dtype: float64

Also hier ist meine Frage: Was bedeutet axis in Pandas?

1voto

mpriya Punkte 613

Zum Beispiel, wenn du df.shape benutzt, erhältst du als Ausgabe ein Tupel, das die Anzahl der Zeilen und Spalten im Datenrahmen enthält.

In [10]: movies_df.shape
Out[10]: (1000, 11)

In dem obigen Beispiel gibt es 1000 Zeilen und 11 Spalten im Filmdatenrahmen, wobei 'row' an der Indexposition 0 und 'column' an der Indexposition 1 des Tupels erwähnt wird. Daher steht 'axis=1' für Spalte und 'axis=0' für Zeile.

Credits: Github

1voto

HeadAndTail Punkte 804

Axis = 0 bedeutet von oben nach unten Axis = 1 bedeutet von links nach rechts

sums[key] = lang_sets[key].iloc[:,1:].sum(axis=0)

Das gegebene Beispiel summiert alle Daten in der Spalte == key.

1voto

Abhishek Raj Punkte 512

Ich verstehe es so :

Wenn Ihr Geschäftsvorfall erfordert, dass Sie in einem DataFrame von links nach rechts/rechts nach links traversieren, verschmelzen Sie anscheinend Spalten d. h. Sie arbeiten mit verschiedenen Spalten. Dies ist Achse =1

Beispiel

df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['A', 'B', 'C', 'D'])
print(df)
   A  B   C   D
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11 

df.mean(axis=1)

0    1.5
1    5.5
2    9.5
dtype: float64

df.drop(['A','B'],axis=1,inplace=True)

    C   D
0   2   3
1   6   7
2  10  11

Zu beachten ist hier, dass wir auf Spalten arbeiten

Ebenso, wenn Ihr Geschäftsvorfall erfordert, dass Sie in einem DataFrame von oben nach unten/unten nach oben traversieren, verschmelzen Sie Zeilen. Dies ist Achse=0.

1voto

Harshana Sridhar Punkte 101

Ich bin ein Anfänger in pandas. Aber so verstehe ich die Achse in pandas:


Achse Konstant Veränderlich Richtung


0 Spalte Zeile Abwärts |


1 Zeile Spalte Nach rechts -->


Um also den Mittelwert einer Spalte zu berechnen, sollte diese bestimmte Spalte konstant sein, aber die Zeilen darunter können sich (verändern), also ist es Achse=0.

Ebenso, um den Mittelwert einer Zeile zu berechnen, sollte diese bestimmte Zeile konstant sein, aber sie kann sich durch verschiedene Spalten (verändern), also Achse=1.

0voto

Viele Antworten hier haben mir sehr geholfen!

Falls Sie verwirrt sind von den unterschiedlichen Verhaltensweisen von axis in Python und MARGIN in R (wie bei der apply Funktion), finden Sie vielleicht einen Blog-Eintrag, den ich geschrieben habe, interessant: https://accio.github.io/programming/2020/05/19/numpy-pandas-axis.html.

Im Wesentlichen:

  • Ihre Verhaltensweisen sind interessanterweise einfacher zu verstehen mit einem dreidimensionalen Array als mit zweidimensionalen Arrays.
  • In den Python-Paketen numpy und pandas gibt der Achsenparameter in der Summenfunktion tatsächlich an, dass numpy den Durchschnitt aller Werte berechnen soll, die in Form eines Arrays[0, 0, ..., i, ..., 0] abgerufen werden können, wobei i alle möglichen Werte durchgeht. Der Prozess wird mit der Position von i fixiert wiederholt und die Indizes der anderen Dimensionen ändern sich nacheinander (vom am weitesten rechts stehenden Element). Das Ergebnis ist ein n-1-dimensionales Array.
  • In R lässt der MARGINS-Parameter die apply Funktion den Durchschnitt aller Werte berechnen, die in Form eines Arrays[, ... , i, ... ,] abgerufen werden können, wobei i alle möglichen Werte durchgeht. Der Prozess wird nicht wiederholt, wenn alle i-Werte durchgegangen wurden. Daher ist das Ergebnis ein einfacher Vektor.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X