0

我正在尝试添加hours到 a 中的特定值,以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
4

1 回答 1

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
于 2018-08-16T23:48:12.057 回答