讓它成為以下 Python Panda DataFrame:
| 日期 | week_day | 旗幟 |
|---|---|---|
| 2022-04-29 19:03:21 | 星期五 | 錯誤的 |
| 2022-05-23 21:30:04 | 周一 | 錯誤的 |
| 2022-05-29 00:50:45 | 星期日 | 真的 |
| 2022-06-10 20:07:21 | 星期五 | 錯誤的 |
| 2022-06-17 17:23:22 | 星期五 | 錯誤的 |
| 2022-06-18 21:30:08 | 周六 | 真的 |
我希望標志在周五 19:00:00 后為 True。也就是說,得到如下結果表。
| 日期 | week_day | 旗幟 |
|---|---|---|
| 2022-04-29 19:03:21 | 星期五 | 真的 |
| 2022-05-23 21:30:04 | 周一 | 錯誤的 |
| 2022-05-29 00:50:45 | 星期日 | 真的 |
| 2022-06-10 20:07:21 | 星期五 | 真的 |
| 2022-06-17 17:23:22 | 星期五 | 錯誤的 |
| 2022-06-18 21:30:08 | 周六 | 真的 |
uj5u.com熱心網友回復:
這是實作它的一種方法
過濾日期為星期五的行,然后使用日期時間,拆分小時并比較其是否為 19 或更大,并相應地將標志設定為真,否則保持原樣
np.where 允許有條件地更新標志
import datetime
import numpy as np
import pandas as pd
df['flag'] = np.where((df['week_day'] == 'Friday') & (df['date'].astype('datetime64').dt.strftime('%H') >= '19'),
True,
df['flag'])
或者,使用 dt.hour 而不是 strftime,正如 Quang Hoang 在評論中建議的那樣。
df['flag'] = np.where((df['week_day'] == 'Friday') & (df['date'].astype('datetime64').dt.hour >= 19),
True,
df['flag'])
df
date week_day flag
0 2022-04-29 19:03:21 Friday True
1 2022-05-23 21:30:04 Monday False
2 2022-05-29 00:50:45 Sunday True
3 2022-06-10 20:07:21 Friday True
4 2022-06-17 17:23:22 Friday False
5 2022-06-18 21:30:08 Saturday True
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/487185.html
上一篇:在另一列SQLBigQuery中獲取不遲于日期的最新日期記錄
下一篇:轉換串列中年資料的天數資料
