Ich möchte die dtypes eines DataFrame-Spalten zu kategorialen Typen initialisieren und jede Kategorie bei seiner Erstellung angeben.Pandas: Definiere kategorischen dtype mit Kategorien im DataFrame-Konstruktor
Auf diese Weise scheint weniger effizient, weil ich eine Schleife über animals
zweimal:
col_name = pd.Categorical([a.name for a in animals], categories=['bird','cat','dog'])
col_food = pd.Categorical([a.food for a in animals], categories=['meat','veggies'])
df = pd.DataFrame({'Animal': col_name, 'Food': col_food})
Auf diese Weise effizienter scheint, weil ich eine Schleife über animals
nur einmal, sondern wie kann ich die kategorischen Spalten Kategorien angeben ?:
df = pd.DataFrame([{'Animal': a.name, 'Food': a.food} for a in animals],
dtype={'Animal': ???, 'Food': ???})
Ich möchte auch vermeiden, zuerst den DataFrame zu erstellen und dann die Spalten in Kategorien umzuwandeln.
Etwas wie: dtype={'Food': dtype('category', categories=['meat','veggies]), ...}
Was sind 'Tiere'? ein anderes df? – jezrael
vielleicht funktioniert 'dtype = {'Tier':" Kategorie "," Essen ":" Kategorie "})' – jezrael
@jezrael Nein, nur eine einfache Python-Liste der Klassenobjekte – Qululu