gpt4 book ai didi

python - 检查日期列是否在日期范围内 - Pandas

转载 作者:行者123 更新时间:2023-12-03 23:21:26 25 4
gpt4 key购买 nike

我必须检查日期列是否在一个范围内。特别是我必须检查它是否包含在另一个日期 +/- n 天给出的范围内。假设我的数据框是:

import pandas as pd
d = {
'date1': ['2019-09-11', '2019-09-12', '2019-08-02'],
'date2': ['2019-10-11', '2019-09-24', '2019-11-11']
}
df = pd.DataFrame(d)

我必须检查是否 (date2 - 5 days) < date1 < (date2 + 5 days)

最佳答案

使用 between 加减 5 天时间增量,过滤器 boolean indexing :

d = {
'date1': ['2019-09-11', '2019-09-12', '2019-08-02'],
'date2': ['2019-09-14', '2019-09-08', '2019-11-11']
}
#changed data for match
df = pd.DataFrame(d)
print (df)
date1 date2
0 2019-09-11 2019-09-14
1 2019-09-12 2019-09-08
2 2019-08-02 2019-11-11

c = ['date1','date2']
df[c] = df[c].apply(pd.to_datetime)

a = df['date2'] - pd.Timedelta(5, unit='d')
b = df['date2'] + pd.Timedelta(5, unit='d')

df = df[df['date1'].between(a, b, inclusive=False)]
print (df)

date1 date2
0 2019-09-11 2019-09-14
1 2019-09-12 2019-09-08

另一个解决方案 DataFrame.query :
df = df.query('@start < date1 < @end')
print (df)

date1 date2
0 2019-09-11 2019-09-14
1 2019-09-12 2019-09-08

关于python - 检查日期列是否在日期范围内 - Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54665500/

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