【问题标题】:Convert a date with string format to timestap in a loop在循环中将具有字符串格式的日期转换为时间戳
【发布时间】:2021-11-06 03:49:03
【问题描述】:

我有一个带日期的字典,有些是时间戳,有些是字符串。 我想迭代一个字典。如果 val 与 sting 一样,则将其转换为时间戳。如果不只是打印它。

import pandas as pd
ts = pd.Timestamp('2017-01-01T12')
date = '2017-01-01'

timedict = {
  "timestamp": ts,
  "date": date
}

for key, val in timedict.items():
    if val == #string:
        val.strftime('%d.%m.%Y')
        print(val)
        
    else:
        print(val)

【问题讨论】:

    标签: python pandas date timestamp


    【解决方案1】:

    这样的?

    使用datetime对字符串进行解析和格式化

    from datetime import datetime
    import pandas as pd
    
    ts = pd.Timestamp("2017-01-01T12")
    date = "2017-01-01"
    
    timedict = {
        "timestamp": ts,
        "date": date,
    }
    
    for key, val in timedict.items():
        if isinstance(val, str):
            val = datetime.strptime(val, "%Y-%m-%d")
            val = val.strftime("%d.%m.%Y")
            print(val)
        else:
            print(val)
    

    哪些输出:

    2017-01-01 12:00:00
    01.01.2017
    

    或者,由于您已经在使用 pandas,您可以从解析的 datetime 对象创建一个 pd.Timestamp

    for key, val in timedict.items():
        if isinstance(val, str):
            val = pd.Timestamp(datetime.strptime(val, "%Y-%m-%d"))
            print(val)
        else:
            print(val)
    

    【讨论】:

    • 谢谢你,我可以用你的解决方案!!
    猜你喜欢
    • 2023-03-27
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 2016-11-26
    • 2011-05-05
    相关资源
    最近更新 更多