Czytam pliki JSON w ramkach danych. Ramka danych może mieć pewne kolumny typu String (obiekt), niektóre Numeric (int64 i/lub float64) oraz niektóre kolumny typu daty i godziny. Kiedy dane są odczytywane, typ danych jest często niepoprawny (tj. Datetime, int i float będą często przechowywane jako typ "obiekt"). Chcę zgłosić tę możliwość. (tj. kolumna jest w ramce danych jako "obiekt" (String), ale w rzeczywistości jest to "datetime").Python Pandy wnioskujące dane dotyczące kolumn
Problem mam jest to, że podczas korzystania pd.to_numeric i pd.to_datetime będą zarówno oceny i spróbować przekonwertować kolumnę i wielokrotnie kończy się w zależności które z dwa ja nazywam ostatnim ... (miałem zamiar użyć convert_objects() który działa, ale to jest zamortyzowane, więc chciałem lepszą opcję).
Kod używam do oceny kolumnę dataframe jest (i zrealizować wiele niżej jest zbędny, ale pisałem to w ten sposób dla czytelności):
try:
inferred_type = pd.to_datetime(df[Field_Name]).dtype
if inferred_type == "datetime64[ns]":
inferred_type = "DateTime"
except:
pass
try:
inferred_type = pd.to_numeric(df[Field_Name]).dtype
if inferred_type == int:
inferred_type = "Integer"
if inferred_type == float:
inferred_type = "Float"
except:
pass
To wstyd, że został przestarzały. To wspaniała metoda. –
convert_objects jest przestarzałe przez [infer_objects] (https://pandas-docs.github.io/pandas-docs-travis/generated/pandas.DataFrame.infer_objects.html) nie jest – itzjustricky
@itzjustricky infer_objects nie rozpozna nawet [' 1 ',' 2 ',' 3 '] jako numeryczne. pd.DataFrame (['1', '2', '3']). Infer_objects(). Dtypes zwraca "obiekt" – PabTorre