我有以下 DF:
col1 col2
1 2017-01-03 2018-03-30 08:01:32
2 2017-01-04 2018-03-30 08:02:32
如果我这样做
df.dtypes
,我得到以下输出:col1 datetime64[ns]
col2 datetime64[ns]
dtype: object
但是
col1
仅包含日期信息 (DATE),而 col2
包含日期和时间信息 (DATETIME)。确定列是否包含 DATE 或 DATETIME 信息的最简单方法是什么?
数据生成:
import pandas as pd
# Generate the df
col1 = ["2017-01-03", "2017-01-04"]
col2 = ["2018-03-30 08:01:32", "2018-03-30 08:02:32"]
df = pd.DataFrame({"col1": col1, "col2": col2})
df["col1"] = pd.to_datetime(df["col1"])
df["col2"] = pd.to_datetime(df["col2"])
最佳答案
根据 this所以问题,以下功能可以完成这项工作:
def check_col(col):
try:
dt = pd.to_datetime(df[col])
if (dt.dt.floor('d') == dt).all():
return('Its a DATE field')
else:
return('Its a DATETIME field')
except:
return("could not parse to pandas datetime")
然而,难道没有更直接的方法吗?
关于python - 确定 Pandas Dataframe 中的列是否包含 DATE 或 DATETIME 信息的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62405923/