Wenn ich einen Datenrahmen mit den folgenden Spalten habe:
1. NAME object
2. On_Time object
3. On_Budget object
4. %actual_hr float64
5. Baseline Start Date datetime64[ns]
6. Forecast Start Date datetime64[ns]
Ich möchte sagen können: Hier ist ein Datenrahmen, geben Sie mir eine Liste der Spalten vom Typ Object oder vom Typ DateTime?
Ich habe eine Funktion, die Zahlen (Float64) in zwei Dezimalstellen konvertiert, und ich möchte diese Liste von Datenrahmenspalten eines bestimmten Typs verwenden und diese Funktion ausführen, um sie alle in 2dp zu konvertieren.
Vielleicht:
For c in col_list: if c.dtype = "Something"
list[]
List.append(c)?
df.dtypes
tut das.Antworten:
Wenn Sie eine Liste von Spalten eines bestimmten Typs wünschen, können Sie Folgendes verwenden
groupby
:quelle
object
unabhängig vom tatsächlichen Inhalt den Typ zurückgebenselect_dtypes
stattdessenAb pandas v0.14.1 können Sie
select_dtypes()
Spalten nach dtype auswählenquelle
Mit
dtype
wird der Datentyp der gewünschten Spalte angezeigt:Wenn Sie die Datentypen aller Spalten gleichzeitig kennen möchten , können Sie den Plural von
dtype
as dtypes verwenden :quelle
df.select_dtypes(include=['Object','DateTime']).columns
Sie können eine boolesche Maske für das Attribut dtypes verwenden:
Sie können nur die Spalten mit dem gewünschten dtype anzeigen:
Jetzt können Sie round (oder was auch immer) verwenden und es zurück zuweisen:
quelle
Dies sollte den Trick tun
quelle
Verwenden Sie standardmäßig "
df.info(verbose=True)
wheredf
is a pandas datafarme"verbose=False
quelle
Der direkteste Weg, um eine Liste von Spalten eines bestimmten Typs zu erhalten, z. B. 'Objekt':
Beispielsweise:
So rufen Sie alle Spalten vom Typ 'Objekt' ab:
Nur für die Liste:
quelle
Wenn Sie nur eine Liste der Objektspalten wünschen, können Sie Folgendes tun:
und dann, wenn Sie eine andere Liste nur der Zahlen erhalten möchten:
quelle
Ich habe mir diesen Drei-Liner ausgedacht .
Im Wesentlichen ist hier, was es tut:
Dies erleichterte mir das Leben, wenn ich versuchte, Schemata im laufenden Betrieb zu generieren . Hoffe das hilft
quelle
für yoshiserry;
quelle
Ich benutze infer_objects ()
df.infer_objects().dtypes
quelle