【发布时间】:2020-12-09 19:06:39
【问题描述】:
我有一个带有日期/时间列的数据框
0 2020-01-07 09:00:00
1 2020-01-15 13:00:00
2 2020-01-22 14:00:00
3 2020-01-30 09:00:00
4 2020-02-05 14:00:00
5 2020-02-12 10:00:00
6 2020-05-12 07:00:00
7 2020-05-12 08:00:00
8 2020-05-12 09:00:00
9 2020-05-12 10:00:00
10 2020-05-12 11:00:00
11 2020-05-12 12:00:00
12 2020-05-12 13:00:00
13 2020-05-12 14:00:00
14 2020-05-12 15:00:00
15 2020-05-12 16:00:00
16 2020-07-02 08:00:00
17 2020-07-02 09:00:00
18 2020-07-02 10:00:00
19 2020-07-02 11:00:00
20 2020-07-02 12:00:00
我要做的是在日期介于 2020 年 3 月 14 日和 2020 年 7 月 11 日之间的时间上增加 2 小时,并在其他任何地方的时间上增加 1 小时。 我已经能够使用以下方法添加小时:
df['Date/Time'] = df['Date/Time'] + pd.DateOffset(hours=1)
但是,我似乎不知道如何通过 df.loc 进行操作。 我尝试过的:
df.loc[(df['Date/Time'] >= start_date) & (df['Date/Time'] <= end_date), ['Date/Time']] = (['Date/Time'] + pd.DateOffset(hours=1))
我也尝试过使用 For 和嵌套的 IF 语句迭代数据帧,但这会引发以下错误。
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
任何帮助将不胜感激。谢谢
【问题讨论】:
标签: python pandas dataframe datetime