正确地注入日期/时间值

关于我如何操纵我当前的日期时间数据的想法,使其适合在转换数据类型时间时使用?例如:

df1['Date/Time'] = pd.to_datetime(df1['Date/Time'])

数据的当前格式为mm / dd 00:00:00

如下所示,可以在DataFrame中的列的示例。

          Date/Time  Dry_Temp[C]  Wet_Temp[C]  Solar_Diffuse_Rate[[W/m2]]  \
0   01/01  00:10:00         8.45     8.237306                         0.0   
1   01/01  00:20:00         7.30     6.968360                         0.0   
2   01/01  00:30:00         6.15     5.710239                         0.0   
3   01/01  00:40:00         5.00     4.462898                         0.0   
4   01/01  00:50:00         3.85     3.226244                         0.0
df1['Date/Time'] = pd.to_datetime(df1['Date/Time'], format='%m:5d %H:%M:%S')威尔为您提供年份和日子作为时代的开始。这是你想要的?ITPRORH66
这对我没有工作,我相信你的意思是我尝试但没有运气的百分比而不是5Loai Alnouri
你是正确的,TProrh66

回答 2

  1. 赞同 0

    要访问DateTime的值(即时间),可以使用:

    # These are now in a usable format
    seconds = df1['Date/Time'].dt.second
    minutes = df1['Date/Time'].dt.minute
    hours = df1['Date/Time'].dt.hours
    

    如果需要,您可以创建自己的独立时间序列:

    df1['Dat/Time'].dt.time
    

    哈拉玛
    hi,似乎这对我不起作用:(Loai Alnouri
    AS @ ITPROH66推断,我当时没有意识到(现在仍然不确定):你的输入是一个字符串吗?如果是这样,您可以使用他给出的格式传递它,并使用上面提到的变量操纵数据。一些额外的代码示例会有所帮助,特别是在/之后的理想(所需的结果)。Llry Llama
    我认为我想出了这个问题,即在我的日期/时间表中,我有一些读取的值24:00:00,这是Datetime库不支持的,您是否有任何关于我的想法编辑所有24:00:00细胞,以便他们读00:00:00?Loai Alnouri
    当前格式是字符串Loai Alnouri
    which do you want to do if the hour =n 24? reset to 00 or increase day by 1 and reset hour to 00?ITPRORH66
  2. 赞同 0

    对于小时表示为24的条件,您有两种选择。首先,您可以简单地将小时重置为00,而第二个可以将小时重置为00并添加1到日期。
    在任何一种情况下,第一步都检测到可以使用简单的查找语句完成的条件t.find(' 24:')在第一种情况下,在第一种情况下检测到该条件是重置小时到00的简单问题,并继续格式化字段的过程。然而,在第二种情况下,增加1到当天是一个更复杂的,因为你可以滚到下个月。

    我会使用的方法:

    长期表格:

        Date Time
    0   01/01 00:00:00
    1   01/01 00:24:00
    2   01/01 24:00:00
    3   01/31 24:00:00  
    

    第一个案例

    def parseDate2(tx):
        ti = tx.find('  24:')
        if ti >= 0:
            tk = pd.to_datetime(tx[:5]+'  00:'+tx[10:], format= '%m/%d  %H:%M:%S') 
            return tk + du.relativedelta.relativedelta(hours=+24)
        return pd.to_datetime(tx, format= '%m/%d  %H:%M:%S')        
    
    df['Date Time'] = df['Date Time'].apply(lambda x: parseDate(x))
    

    提出以下内容:

        Date Time
    0   1900-01-01 00:00:00
    1   1900-01-01 00:24:00
    2   1900-01-01 00:00:00
    3   1900-01-31 00:00:00
    

    对于第二种案件,我雇用了Dateutil Relativedelta库,并略微修改了我的解剖乐曲,如下所示:

    import dateutil as du
    def parseDate2(tx):
        ti = tx.find('  24:')
        if ti >= 0:
            tk = pd.to_datetime(tx[:5]+'  00:'+tx[10:], format= '%m/%d  %H:%M:%S') 
            return tk + du.relativedelta.relativedelta(hours=+24)
        return pd.to_datetime(tx, format= '%m/%d  %H:%M:%S')        
    
    df['Date Time'] = df['Date Time'].apply(lambda x: parseDate2(x))  
    

    yields:

        Date Time
    0   1900-01-01 00:00:00
    1   1900-01-01 00:24:00
    2   1900-01-02 00:00:00
    3   1900-02-01 00:00:00
    
    ​
    

    itprorh66