gpt4 book ai didi

python - 按时间过滤 Pandas 数据框(不是日期)

转载 作者:行者123 更新时间:2023-12-05 01:49:40 25 4
gpt4 key购买 nike

我有下面的数据框,想按时间过滤。当我使用数据类型时,时间列作为一个对象出现。

为了获取时间作为过滤条件,我使用了 split:

start_time = "25 September 2022, 13:00:00"
split_time = start_time.split(", ")[1]

我尝试将 split_time 和 df 列转换为 datime,但在 df 列转换时出错:

TypeError: 不可转换为日期时间

我也尝试过简单的字符串搜索,但这没有返回任何结果。

我已经能够使用以下方法按日期过滤:

split_date = start_time.split(", ")[0]
event_date = datetime.strptime(split_date, "%d %B %Y")
events_df['start_date'] = pd.to_datetime(events_df['start_date'])
filtered_df = events_df.loc[(events_df['start_date'] == event_date)]

但似乎无法在时间上做同样的事情。谁能看出问题所在?

谢谢

<表类="s-表"><头>fixture_id名称开始日期时间<正文>1459394134普利茅斯阿盖尔 v 伊普斯维奇镇2022-09-25 00:00:0012:30:001469694948格雷斯竞技 v Merstham FC2022-09-25 00:00:0013:00:001479694959FC Romania v Faversham Town2022-09-25 00:00:0015:00:00

最佳答案

Series.dt.time 生成的 Comapre 时间与 Timestamp.time :

start_time = "25 September 2022, 13:00:00"
dt = pd.to_datetime(start_time, format="%d %B %Y, %H:%M:%S")

events_df['start_date'] = pd.to_datetime(events_df['start_date'])
#if necessary
events_df['time'] = pd.to_datetime(events_df['time']).dt.time

filtered_df = events_df.loc[(events_df['time'] == dt.time())]
print (filtered_df)
fixture_id name start_date time
1 146 9694948 Grays Athletic v Merstham FC 2022-09-25 13:00:00

关于python - 按时间过滤 Pandas 数据框(不是日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73826941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com