亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 中的日期時間比較

Python 中的日期時間比較

白衣染霜花 2022-09-06 16:26:12
我有一個 datetime 列,需要查找時間介于任何一天的 9:30 到 17:00 之間的記錄。我不關心日期,但需要根據時間過濾數據。2018-12-28 10:53:24.9502018-12-28 10:53:55.0102019-01-02 16:48:31.5932019-01-02 16:48:31.5932019-01-02 16:48:31.593我正在使用以下命令來提取小時數。df1['hour_of_timestamp'] = df1['User_date'].dt.hour
查看完整描述

3 回答

?
DIEA

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


查看完整回答
反對 回復 2022-09-06
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

您可以使用 解析日期。然后你可以檢查并做出決定。d = datetime.datetime.fromisoformat(date_str)d.hourd.minute



查看完整回答
反對 回復 2022-09-06
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

如果您的日期始終采用YYYY-MM-DD格式,那么為什么不像這樣切分字符串以獲取時間:

time_str = date_str[10:].strip()

然后,您可以對時間列表進行排序,并查找9:30至17:00之間的時間。sorted(time_list)


查看完整回答
反對 回復 2022-09-06
  • 3 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號