首页 > 解决方案 > 在日期列的选择性时间段中添加 1 天

问题描述

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

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

我该怎么做呢?

到目前为止,我有:

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

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

标签: pythonpandasdatetime

解决方案


如果不是日期时间,则to_datetime首先用于列,然后将列转换为字符串(如果可能),转换为日期时间并按条件获取,比较并添加日期:DateTimepython timehoursSeries.dt.hour1

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

推荐阅读