3 回答

TA貢獻1820條經驗 獲得超2個贊
Pandas確實有一個內置的方法,between_time()來選擇特定時間段內的行,但它只適用于datetime對象是索引(或者,最近,列)。
由于您已經有一個 datetime 列,因此您可以像這樣提取行(從此處調整示例):
import pandas as pd
data = [["20090102 04:51:00", 89.9900, 89.9900, 89.9900, 89.9900, 100], ["20190102 05:36:00", 90.0100, 90.0100, 90.0100, 90.0100, 200], ["20090102 05:44:00", 90.1400, 90.1400, 90.1400, 90.1400, 100], ["20090102 05:50:00", 90.0500, 90.0500, 90.0500, 90.0500, 500], ["20090102 05:56:00", 90.1000, 90.1000, 90.1000, 90.1000, 300], ["20090102 05:57:00", 90.1000, 90.1000, 90.1000, 90.1000, 200]]
# Building sample dataframe with Datetime column
df = pd.DataFrame(data)
df.columns = ["Datetime", "1", "2", "3", "4", "5"]
df['Datetime'] = pd.to_datetime(df['Datetime'], format="%Y%m%d %H:%M:%S")
# Extract rows with datetime matching index range
print(df.set_index("Datetime").between_time('5:30:00', '5:45:00'))
這將僅輸出時間范圍之間的記錄。
1 2 3 4 5
Datetime
2019-01-02 05:36:00 90.01 90.01 90.01 90.01 200
2009-01-02 05:44:00 90.14 90.14 90.14 90.14 100

TA貢獻1852條經驗 獲得超7個贊
您可以使用 解析日期。然后你可以檢查并做出決定。d = datetime.datetime.fromisoformat(date_str)
d.hour
d.minute

TA貢獻1111條經驗 獲得超0個贊
如果您的日期始終采用YYYY-MM-DD格式,那么為什么不像這樣切分字符串以獲取時間:
time_str = date_str[10:].strip()
然后,您可以對時間列表進行排序,并查找9:30至17:00之間的時間。sorted(time_list)
添加回答
舉報