我正在尝试将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
答案 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