【问题标题】:Unusual formatting for date and times: wish to convert to datetime objects日期和时间的异常格式:希望转换为日期时间对象
【发布时间】:2017-12-07 14:12:05
【问题描述】:

我有一个 .csv 文件,其中包含三列,一列表示日期,一列表示时间,第三列表示关联值。各列如图:

date        time        value
02112017    143335      1.79
03112017    153540      0.86
04112017    164015      2.79
05112017    135150      3.50

将 .csv 文件上传到 Python 并查询数据类型后,“日期”和“时间”为整数值,“值”为浮点值。

我想将“日期”和“时间”列组合成一个日期时间对象列,然后我可以针对“值”列绘制时间序列。因此:

date        time       datetime
02112017    143335     02-11-2017 14:33:35

我尝试连接这些值,然后使用 pd.to_datetime 将它们转换为日期时间对象,但得到一系列错误消息 - 包括消息:

ValueError: unconverted data remains: 00

如果有人能指出我所缺少的东西,我将不胜感激!

【问题讨论】:

    标签: python pandas datetime


    【解决方案1】:

    先连接列,然后使用to_datetime

    s = df['date'] + ' ' + df['time'].astype(str)
    df['datetime'] = pd.to_datetime(s, format='%d%m%Y %H%M%S')
    print (df)
           date    time value            datetime
    0  02112017  143335  1.79 2017-11-02 14:33:35
    1  03112017  153540  0.86 2017-11-03 15:35:40
    2  04112017  164015  2.79 2017-11-04 16:40:15
    3  05112017  135150  3.50 2017-11-05 13:51:50
    

    【讨论】:

    • 不错的一个。在我的情况下,我必须将第一个语句替换为: s = df['date'].astype(str) + ' ' + df['time'].astype(str) 或 s = df['date'].map (str) + ' ' + df['time'].map(str) 因为 csv 数据不是 str 格式。无论如何谢谢。
    • 谢谢!我也有同样的问题,我必须在我的“日期”列中包含“astype(str)”。但除此之外它奏效了。现在来研究如何绘制这个!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 2016-11-26
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    相关资源
    最近更新 更多