【问题标题】:Pandas to datetime check format熊猫到日期时间检查格式
【发布时间】:2020-06-04 12:35:16
【问题描述】:

我有几个 csv 文件,它们都有一个日期列,日期为 DD/MM/YYYY 格式或 MM/DD/YYYY 格式。

目前我手动检查文件并使用下面的代码将其转换为熊猫日期时间。

df["date"] = pd.to_datetime(df["date"], dayfirst=True, errors='coerce')

如果日期格式不同,我会更改 dayfirst=True/False。 我必须强制错误,因为某些行包含脏数据。 我想自动化这个过程,以便我只上传文件,pandas 会自动决定该列是 MM/DD 还是 DD/MM 格式。

感谢任何提示和建议。

【问题讨论】:

  • 你有什么尝试吗?一般来说,我会首先考虑如何获得“干净”的输入数据。考虑像“2019 年 10 月 10 日”这样的日期——这简直是模棱两可的。 pandas 无法自动为您确定月份和日期的位置。一列中的月/日位置至少是恒定的还是随机变化的?

标签: pandas datetime datetime-format python-datetime


【解决方案1】:

好的,我发现了一些有用的东西:

for df in df_list:
    df_test=df["Date"].str.split("/", expand=True)
    df_test[0] = pd.to_numeric(df_test[0], errors="coerce")
    df_test[1] = pd.to_numeric(df_test[1], errors="coerce")
    a=df_test[0].max()
    b=df_test[1].max()
    if b > a:
        df["Date"] = pd.to_datetime(df["Creation Date"],dayfirst=False, errors='coerce')
    elif a > b:
        df["Date"] = pd.to_datetime(df["Creation Date"],dayfirst=True, errors='coerce')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-21
    • 2020-11-16
    • 2021-02-17
    • 2022-10-12
    • 1970-01-01
    • 2018-07-05
    • 2019-09-12
    相关资源
    最近更新 更多