Jeśli mam ramkę danych z następującymi kolumnami:
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]
Chciałbym móc powiedzieć: oto ramka danych, podaj mi listę kolumn typu Object lub typu DateTime?
Mam funkcję, która konwertuje liczby (Float64) na dwa miejsca po przecinku, i chciałbym użyć tej listy kolumn ramki danych określonego typu i uruchomić ją przez tę funkcję, aby przekonwertować je wszystkie na 2dp.
Może:
For c in col_list: if c.dtype = "Something"
list[]
List.append(c)?
df.dtypes
robi to.Odpowiedzi:
Jeśli chcesz listę kolumn określonego typu, możesz użyć
groupby
:źródło
object
typ, niezależnie od ich rzeczywistej zawartościselect_dtypes
Zamiast tego użyjPocząwszy od pand v0.14.1, można używać
select_dtypes()
do wybierania kolumn według typu dtypeźródło
Użycie
dtype
daje pożądany typ danych kolumny:jeśli chcesz poznać typy danych wszystkich kolumn jednocześnie , możesz użyć liczby mnogiej
dtype
jako dtypów :źródło
df.select_dtypes(include=['Object','DateTime']).columns
jak omówiono poniżejMożesz użyć maski logicznej dla atrybutu dtypes:
Możesz spojrzeć tylko na te kolumny z pożądanym typem:
Teraz możesz użyć okrągłego (lub cokolwiek) i przypisać go z powrotem:
źródło
To powinno załatwić sprawę
źródło
domyślnie użyj
df.info(verbose=True)
gdziedf
jest pandas datafarmeverbose=False
źródło
Najbardziej bezpośredni sposób na uzyskanie listy kolumn określonego typu, np. „Object”:
Na przykład:
Aby uzyskać wszystkie kolumny typu „obiektowego”:
Tylko lista:
źródło
Jeśli chcesz listę tylko kolumn obiektowych, możesz:
a następnie, jeśli chcesz uzyskać kolejną listę tylko liczb:
źródło
Wymyśliłem ten trzy liniowiec .
Zasadniczo oto, co robi:
To znacznie ułatwiło mi życie w generowaniu schematów w locie. Mam nadzieję że to pomoże
źródło
dla yoshiserry;
źródło
Używam infer_objects ()
df.infer_objects().dtypes
źródło