【问题标题】:How to set missing Year, Month and Day for Panda's Datetime如何为 Panda 的 Datetime 设置缺失的年月日
【发布时间】:2019-04-24 11:29:38
【问题描述】:

我有%H:%M:%S:%f 格式的时间戳数据。当我阅读它并将其传递到带有 pd.to_datetime 的数据帧中时,除了正确传递的%H:%M:%S:%f 之外,它还会自动填写 01/01/1900 如何在读取并传递小时、分钟、秒、毫秒数据时将其设置为特定的年、月、日?

我正在使用的代码:

import pandas as pd
df = pd.DataFrame({'Time': ["00:00:00:001", "00:00:00:005","00:00:00:009"]})
df['Time'] = pd.to_datetime(df['Time'], format='%H:%M:%S:%f')
print(df)

输出:

                     Time
0 1900-01-01 00:00:00.001
1 1900-01-01 00:00:00.005
2 1900-01-01 00:00:00.009

期望的输出:

设定日期,例如:

                     Time
0 2018-11-21 00:00:00.001
1 2018-11-21 00:00:00.005
2 2018-11-21 00:00:00.009

【问题讨论】:

    标签: python pandas datetime


    【解决方案1】:
    df['Time']=df['Time'].apply(lambda dt: dt.replace(year=2018, day=21, month=11)) 
    

    【讨论】:

    • 为什么不在replace 的一个应用程序中完成所有这些工作;例如:dt.replace(2018, 11, 21)?
    【解决方案2】:

    有几种方法可以做到这一点,也许最简单的(至少我想到的)是附加所需日期的字符串值,然后转换为日期时间

    import pandas as pd
    df = pd.DataFrame({'Time': ["00:00:00:001", "00:00:00:005","00:00:00:009"]})
    df["Time"] = "2018-11-21 "+ df["Time"]
    df['Time'] = pd.to_datetime(df['Time'], format='%Y-%m-%d %H:%M:%S:%f')
    print(df)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多