首页 > 解决方案 > 如何获取熊猫中不同列的日期格式

问题描述

在我的 pandas 数据框中,我有 2 到 3 个不同的 DateTime 列。现在我想显示该日期列的格式

例子:

第 1 列 第 2 列
2016-03-12 23:24:05 26-03-2016 上午 11:23:09

现在它应该打印格式: YYYY-MM-DD HH:MM:SS for Column1 和 DD-MM-YYYY HH:MM:SS AM for Column2

标签: pythonpandasdate

解决方案


我不知道任何解析日期时间格式的东西,strftime 和 strptime 也没有你显示的格式。您将不得不依赖默认格式并使用它们,您必须在字典中创建所有可能的格式和您的预期值。然后你可以在下面做:

formats={'%Y-%m-%d %H:%M:%S':'YYYY-MM-DD HH:MM:SS',
         '%d-%m-%Y %H:%M:%S AM':'DD-MM-YYYY HH:MM:SS AM'}

possibilities = pd.MultiIndex.from_product((df.columns,formats.keys()))

u = df.astype(str) #if the datetime columns are not strings already
d = {}
for i in possibilities:
    try:
        pd.to_datetime(u[i[0]],format=i[1])
        d[i[0]] = formats.get(i[1])
    except ValueError:
        pass

print(d)

{'Column1': 'YYYY-MM-DD HH:MM:SS', 'Column2': 'DD-MM-YYYY HH:MM:SS AM'}

推荐阅读