Mir ist nur die Funktion describe()
bekannt. Gibt es andere Funktionen, die str()
, summary()
und head()
ähnlich sind?
summary()
~ describe()
head()
~ head()
Ich bin mir nicht sicher über das Äquivalent str()
.
In Pandas erzeugt die info()
-Methode eine sehr ähnliche Ausgabe wie die str()
von R:
> str(train)
'data.frame': 891 obs. of 13 variables:
$ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ...
$ Survived : int 0 1 1 1 0 0 0 0 1 1 ...
$ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
$ Name : Factor w/ 891 levels "Abbing, Mr. Anthony",..: 109 191 358 277 16 559 520 629 417 581 ...
$ Sex : Factor w/ 2 levels "female","male": 2 1 1 1 2 2 2 2 1 1 ...
$ Age : num 22 38 26 35 35 NA 54 2 27 14 ...
$ SibSp : int 1 1 0 1 0 0 0 3 0 1 ...
$ Parch : int 0 0 0 0 0 0 0 1 2 0 ...
$ Ticket : Factor w/ 681 levels "110152","110413",..: 524 597 670 50 473 276 86 396 345 133 ...
$ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
$ Cabin : Factor w/ 148 levels "","A10","A14",..: 1 83 1 57 1 1 131 1 1 1 ...
$ Embarked : Factor w/ 4 levels "","C","Q","S": 4 2 4 4 4 3 4 4 4 2 ...
$ Child : num 0 0 0 0 0 NA 0 1 0 1 ...
train.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId 891 non-null int64
Survived 891 non-null int64
Pclass 891 non-null int64
Name 891 non-null object
Sex 891 non-null object
Age 714 non-null float64
SibSp 891 non-null int64
Parch 891 non-null int64
Ticket 891 non-null object
Fare 891 non-null float64
Cabin 204 non-null object
Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.6+ KB
Dies liefert eine Ausgabe ähnlich der von R str()
. Es werden eindeutige Werte anstelle von Anfangswerten angezeigt.
def rstr(df): return df.shape, df.apply(lambda x: [x.unique()])
print(rstr(iris))
((150, 5), sepal_length [[5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.4, 4.8, 4.3,...
sepal_width [[3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 2.9, 3.7,...
petal_length [[1.4, 1.3, 1.5, 1.7, 1.6, 1.1, 1.2, 1.0, 1.9,...
petal_width [[0.2, 0.4, 0.3, 0.1, 0.5, 0.6, 1.4, 1.5, 1.3,...
class [[Iris-setosa, Iris-versicolor, Iris-virginica]]
dtype: object)
Pandas bietet einen umfangreichen Vergleich mit R/R-Bibliotheken . Der offensichtlichste Unterschied ist, dass R die funktionale Programmierung bevorzugt, während Pandas objektorientiert ist, wobei der Datenrahmen das Schlüsselobjekt ist. Ein weiterer Unterschied zwischen R und Python ist, dass Python Arrays bei 0 beginnt, R jedoch bei 1.
R | Pandas
-------------------------------
summary(df) | df.describe()
head(df) | df.head()
dim(df) | df.shape
slice(df, 1:10) | df.iloc[:9]
Für ein Python-Äquivalent zur Funktion str()
in R verwende ich die Methode dtypes
. Dadurch werden die Datentypen für jede Spalte bereitgestellt.
In [22]: df2.dtypes
Out[22]:
Survived int64
Pclass int64
Sex object
Age float64
SibSp int64
Parch int64
Ticket object
Fare float64
Cabin object
Embarked object
dtype: object
Ich bevorzuge immer noch str()
, weil es einige Beispiele aufführt. Ein verwirrender Aspekt von info
ist, dass sein Verhalten von einigen Umgebungseinstellungen wie pandas.options.display.max_info_columns
abhängt.
Ich denke, die beste Alternative ist, info
mit einigen anderen Parametern aufzurufen, die ein festes Verhalten erzwingen:
df.info(null_counts=True, verbose=True)
Und für Ihre anderen Funktionen:
summary(df) | df.describe()
head(df) | df.head()
dim(df) | df.shape
Ich weiß nicht viel über R, aber hier sind einige Hinweise:
str =>
schwierig ... für Funktionen können Sie dir () verwenden, dir () für Datensätze gibt Ihnen alle Methoden, also ist es vielleicht nicht das, was Sie wollen ...
summary => describe.
Siehe die Parameter zum Anpassen der Ergebnisse.
head => your can use head(), or use slices.
kopf wie du schon. So erhalten Sie die ersten 10 Zeilen eines Datasets namens ds ds[:10]
für tail ds[:-10]