我正在将JSON文件读入数据框中。数据框可能具有一些字符串(即object类型)列、一些数值型(int64和/或float64)列和一些日期时间类型列。当数据被读入时,数据类型通常是不正确的(例如日期时间、int和float通常会被存储为"object"类型)。我想报告这种可能性。(例如,一个列在数据框中作为"object"(字符串)存在,但实际上它是一个"datetime")。
我的问题是,当我使用pd.to_numeric和pd.to_datetime时,它们都会评估并尝试转换列,并且很多时候最终取决于我哪一个调用最后一个……(我曾经要使用convert_objects(),但那个已经被弃用了,所以想要更好的选择)。
我正在使用以下代码来评估数据框列(我意识到下面很多内容都是冗余的,但出于可读性的考虑,我这样写的):
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