Pandas, wie man dtype für alle Spalten in einem Datenrahmen überprüft?

76

Es scheint, dass dtype nur für pandas.DataFrame.Series funktioniert, oder? Gibt es eine Funktion zum gleichzeitigen Anzeigen von Datentypen aller Spalten?

user3768495
quelle

Antworten:

146

Die Singularform wird verwendet , um den Datentyp für eine einzelne Spalte zu prüfen. Und der Plural Form ist für Datenrahmen , die für alle Spalten - Datentypen zurückgibt. Im Wesentlichen:dtypedtypes

Für eine einzelne Spalte :

dataframe.column.dtype

Für alle Spalten :

dataframe.dtypes

Beispiel :

import pandas as pd
df = pd.DataFrame({'A': [1,2,3], 'B': [True, False, False], 'C': ['a', 'b', 'c']})

df.A.dtype
# dtype('int64')
df.B.dtype
# dtype('bool')
df.C.dtype
# dtype('O')

df.dtypes
#A     int64
#B      bool
#C    object
#dtype: object
Psidom
quelle
3
Wenn Sie alle nicht-numerischen / kategorische Spalten möchten , können Sie es von bekommen df.dtypes[df.dtypes != 'int64'][df.dtypes != 'float64']
nishant
2
Können Sie bitte erklären, warum Spalte C einen Objekttyp anstelle von str hat?
Star Rider
@StarRider sehen diese Antwort sowie die pandasDokumentation, in der erwähnt wird: " Pandas verwendet den Objekttyp zum Speichern von Zeichenfolgen "
call-in-co
Irgendeine Idee, warum ich ein Objekt als dtype habe?
John Andrews
Ich hatte nicht bemerkt, dass Gleichheit mit dtypes ein bisschen verschwommen ist. df.C.dtypekehrt zurück dtype('O'), ist aber df.C.dtype=='object'wahr.
Teepeemm
6

Angenommen, df ist ein Pandas-Datenrahmen, um die Anzahl der Nicht-Null-Werte und Datentypen aller Spalten gleichzeitig abzurufen:

df.info()
Mumtaj Ali
quelle
3
Richtig, aber es wird nur eine Zusammenfassung gegeben. Nicht alle Spalten detailliert.
Nabin