gpt4 book ai didi

python - 如何检查时间戳和日期,然后删除不匹配

转载 作者:行者123 更新时间:2023-12-05 02:25:37 31 4
gpt4 key购买 nike

我有带时间戳的数据。用户回答问题,他们还选择白天(早上或晚上)。我想删除记录的时间戳和日期不匹配的行。所以检查时间戳是否在早上 6 点到中午 12 点之间,如果“白天”是“晚上”则丢弃,等等。

df
timestamps daytime
2020-04-10 11:40 Morning
2022-04-12 19:32 Morning *(discard)*
2022-04-12 20:53 Evening
2022-04-15 22:50 Morning *(discard)*
2022-04-16 09:31 Evening*(discard)*

规则应该是:如果在 06:00-12:00 和“白天”之间是晚上 ==> 删除行/如果在 18:00-00:00 和“白天”之间是早上 ==> 删除行

我试过:

remove = df[ (6< df['timestamp'].dt.hour < 12  & df['period'] == 'Evening') 
| (18< df['timestamp'].dt.hour < 23 & df['period'] == 'Morning')]
df.drop(remove , inplace=True)

最佳答案

您可以使用 . query()过滤。

df["timestamps"] = pd.to_datetime(df["timestamps"])
df = df.query(
"timestamps.dt.hour.between(6, 12, inclusive='both') & daytime.eq('Morning') | "
"timestamps.dt.hour.between(18, 23, inclusive='both') & daytime.eq('Evening')"
).reset_index(drop=True)

print(df)

timestamps daytime
0 2020-04-10 11:40:00 Morning
1 2022-04-12 20:53:00 Evening

关于python - 如何检查时间戳和日期,然后删除不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74418107/

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