Python 向日期列的选定时间段添加1天

Python 向日期列的选定时间段添加1天,python,pandas,datetime,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) 我是一个学习编码的初学者,任何建议都会非常有用!谢谢。首先使用列日期如果不是日期时间,然后将列

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

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

我该怎么做呢

到目前为止,我已经:

df[df['Time']>'12:00:00']['Date'] = df[df['Time']>'12:00:00']['Date'].astype('datetime64[ns]') + timedelta(days=1)
我是一个学习编码的初学者,任何建议都会非常有用!谢谢。

首先使用列
日期
如果不是日期时间,然后将列
时间
转换为字符串(如果可能
python时间
s),转换为日期时间,并按条件获取
小时
,比较并添加
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
首先对列
Date
使用,如果不是datetimes,则将列
Time
转换为字符串(如果可能
python Time
s),转换为datetimes并获取
hours
by,比较并添加
1
day by条件:

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

这似乎与熊猫有关,所以你应该添加适当的标记。你的时间列是什么类型的?谢谢我对标记进行了更新。数据类型是Object。这似乎与pandas有关,因此您应该添加相应的标记。您的时间列是什么类型的?谢谢我对标记进行了更新。数据类型为Object,谢谢!当我运行时它工作了:从datetime导入timedelta df.loc[df['Time']>'12:00:00','Date']=df.loc[df['Time']>'12:00:00','Date'].astype('datetime64')+timedelta(days=1)谢谢!它在我运行时起作用:从datetime导入timedelta df.loc[df['Time']>'12:00:00','Date']=df.loc[df['Time']>'12:00:00','Date'].astype('datetime64')+timedelta(days=1)