def series_is_datetime(series: pd.Series, check_num: int=5, dropna: bool=True):
"""
Checks random rows in a Series comparing rows that coerce to datetime.
:param series:
:param check_num:
:param dropna:
:return:
"""
if dropna:
series = series.dropna(axis=0)
got, lost = 0, 0
size = (check_num if series.index.size > check_num else series.index.size)
if size > 0:
checks = np.random.randint(0, high=series.index.size, size=size)
for x in series[checks].tolist():
try:
x = pd.Timestamp(x)
if pd.notnull(x):
got += 1
except (ValueError, OverflowError):
lost += 1
return got > lost
评论列表
文章目录