python - 确定 Pandas Dataframe 中的列是否包含 DATE 或 DATETIME 信息的最简单方法

标签 python pandas dataframe datetime

我有以下 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/

相关文章:

python - 如何在运行时向模块添加属性?

r - 循环跨列相乘

python - Pandas DatetimeIndex 截断错误

python - 将文件写入本地 SQL DB

python , Pandas : Cut off filter for spikes in a cumulative series

python - 如果列位于列表的任何部分,则过滤数据框

python - 需要检查一个数据帧是否是另一个数据帧的子集

python - 如何创建键: column_name and value : unique values in column in python from a dataframe的字典

python - 如何解决:“UnicodeDecodeError:'ascii'编解码器无法解码字节”

python - 使用 Python (IPython) 并行调用多个 API