首页 > 解决方案 > 当 col 使用 pandas 在数据框中具有日期格式时,将所有日期数据类型列动态转换为 YYYY-MM-DD 格式

问题描述

我正在尝试使用来自 read_csv 的数据框将所有日期列动态转换为 YYYY-MM-DD 格式。列在下面。

empno   ename   sal deptno  period_from hiredate    report_date end_date

使用 re ,搜索列是否具有“期间或日期”字符,然后转换为 YYYY-MM-DD 格式,但问题是某些列没有“期间或日期”,它们实际上是日期列(例如“来自”列)。

df_columns = [col for col in df.columns if re.search("period|date"),col)]
df(df_columns] = df[df_columns].apply(pd.to_datetime)

现在我想创建一个方法/函数来识别数据框中的所有日期数据类型列,然后转换为 YYYY-MM-DD 格式/用户期望的格式。

在此处输入图像描述

标签: pythonpandasdataframedate

解决方案


你可以使用类似的东西:

for col in df.filter(regex='period|date'):
    df[col] = pd.to_datetime(df[col])

很难为您提供更好的答案,并且没有示例数据集作为文本的输出,请更新您的问题以获取更多详细信息。

如果你只有这些格式01-01-2021// 17-Jun-2021/ 18/06/202131122021下面应该处理所有这些。只有后一种情况需要指定格式。如果你有更复杂的东西,你需要做一些解析。

for col in df.filter(regex='period|date'):
    try:
        df[col] = pd.to_datetime(df[col])
    except TypeError:
        df[col] = pd.to_datetime(df[col], format='%d%m%Y')

推荐阅读