讓它成為以下 Python Panda DataFrame:
| country_ID | date | counter | value |
| -------- | ------------------------- | -------- | ------ |
| USA | 2022-03-01 09:22:29 00:00 | 1 | red |
| UK | 2022-03-01 11:21:20 00:00 | 1 | blue |
| USA | 2022-04-02 12:15:23 00:00 | 1 | red |
| ITL | 2022-04-03 11:13:31 00:00 | 1 | red |
| USA | 2022-05-05 21:04:42 00:00 | 1 | green |
| USA | 2022-05-05 22:01:51 00:00 | 1 | green |
| ITL | 2022-06-06 13:00:41 00:00 | 1 | red |
給定日期和時間范圍(開始和結束)和 a country_ID,我想在該范圍內的行中添加 2 小時:
例子:
add_hours('USA', '2022-03-01 09:00:00', '2022-05-05 21:30:00', 2)
| country_ID | date | counter | value |
| -------- | ------------------------- | -------- | ------ |
| USA | 2022-03-01 11:22:29 00:00 | 1 | red |
| UK | 2022-03-01 11:21:20 00:00 | 1 | blue |
| USA | 2022-04-02 14:15:23 00:00 | 1 | red |
| ITL | 2022-04-03 11:13:31 00:00 | 1 | red |
| USA | 2022-05-05 23:04:42 00:00 | 1 | green |
| USA | 2022-05-05 22:01:51 00:00 | 1 | green |
| ITL | 2022-06-06 13:00:41 00:00 | 1 | red |
uj5u.com熱心網友回復:
使用布爾索引嘗試您的邏輯(date也必須是日期時間物件,而不是字串):
def add_hours(df, country, start, end):
is_country = df['country_ID'].eq(country)
valid_date = df['date'].between(start, end)
df.loc[is_country & valid_date, 'date'] = pd.Timedelta('2H')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/487179.html
上一篇:numpy.array.tolist()將numpy.datetime64轉換為int
下一篇:基于日期時間值組合資料框
