在熊猫df中为时间戳添加小时

时间:2018-08-16 23:31:46

标签: python pandas time

我正在尝试将hours的特定值添加pandas df,以便它们保持一致。

对于下面的df,我想将24 hours添加到第一个值。

import pandas as pd

d = ({
    'time' : ['3:00:00','27:30:00','28:00:00'],               
     })

df = pd.DataFrame(data=d)

我目前正在使用它。

df['time'].iloc[0] = df['time'].iloc[0] + pd.Timedelta(hours=24)

但是会产生:

              time
0  1 days 03:00:00
1         27:30:00
2         28:00:00

我的预期输出是:

              time
0         27:00:00
1         27:30:00
2         28:00:00

1 个答案:

答案 0 :(得分:0)

首先这不是时间增量,如果在输出之后执行df.applymap(type),则将看到第一个是时间对象,所有其他对象应为str。

我只能在脑海中浮现

df1=df.time.str.split(':',expand=True)
df1.iloc[0,0]=str(int(df1.iloc[0,0])+24)
df1
Out[63]: 
    0   1   2
0  27  00  00
1  27  30  00
2  28  00  00
df1.apply(':'.join,1)# you can add `to_frame('Time') ` as the end 
Out[64]: 
0    27:00:00
1    27:30:00
2    28:00:00
dtype: object