将1天添加到日期的选择时间段列

时间:2019-04-17 13:29:44

标签: python pandas datetime

我有一个表,其中有一个“日期”,“时间”,“成本”列。

我想选择时间大于12:00:00的行,然后将1天添加到所选行的“日期”列中。

我应该如何去做?

到目前为止,我有:

df[df['Time']>'12:00:00']['Date'] = df[df['Time']>'12:00:00']['Date'].astype('datetime64[ns]') + timedelta(days=1)

我是学习编码的初学者,任何建议都会对您有所帮助!谢谢。

1 个答案:

答案 0 :(得分:0)

如果不是日期时间,首先将to_datetime用于列Date,然后将列Time转换为字符串(如果可能)python time,转换为日期时间并获得hours通过Series.dt.hour进行比较,并按条件比较并添加1天:

df = pd.DataFrame({'Date':['2015-01-02','2016-05-08'],
                   'Time':['10:00:00','15:00:00']})

print (df)
         Date      Time
0  2015-01-02  10:00:00
1  2016-05-08  15:00:00

df['Date'] = pd.to_datetime(df['Date'])
mask = pd.to_datetime(df['Time'].astype(str)).dt.hour > 12
df.loc[mask, 'Date'] += pd.Timedelta(days=1)
print (df)
        Date      Time
0 2015-01-02  10:00:00
1 2016-05-09  15:00:00