gpt4 book ai didi

Pandas 数据框检查列中的日期是否小于自定义日期?

转载 作者:行者123 更新时间:2023-12-04 13:15:55 26 4
gpt4 key购买 nike

df 有两列名称和日期(任何格式的日期 - 字符串格式/日期时间格式)。目前它是字符串格式。

df

            name      date              

0 john 2019-08-24 05:30:30

1 jude 2020-03-03 21:15:03

如果 date 距当前时间不到 10 天,则向其添加一个新列(输出)false,否则为 true。

预期输出

          name      date                 output  

0 john 2019-08-24 05:30:30 False

1 jude 2020-03-03 21:15:03 True

最佳答案

使用Series.between使用当前日期时间减去 10 天和当前日期时间:

#if necessary
df['date'] = pd.to_datetime(df['date'])

now = pd.to_datetime('now')
df['output'] = df['date'].between(now - pd.Timedelta(10, 'd'), now)

对于 大于或等于,它的工作方式与按位 AND 的链式掩码相同 - Series.ge小于或等于 - Series.le :

df['output'] = df['date'].ge(now - pd.Timedelta(10, 'd')) & df['date'].le(now)
#alternative
#df['output'] = (df['date'] >= now - pd.Timedelta(10, 'd')) & (df['date'] <= now)

print (df)
name date output
0 john 2019-08-24 05:30:30 False
1 jude 2020-03-03 21:15:03 True

如果想要其他组合是可能的,请使用 Series.lt , Series.gt , Series.le , Series.ge .

如果想省略时间并只处理日期,请添加 Series.dt.dateTimestamp.date :

#if necessary
df['date'] = pd.to_datetime(df['date'])

now = pd.to_datetime('now').date()
df['output'] = df['date'].dt.date.between(now - pd.Timedelta(10, 'd'), now)
print (df)
name date output
0 john 2019-08-24 05:30:30 False
1 jude 2020-03-03 21:15:03 True

关于 Pandas 数据框检查列中的日期是否小于自定义日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60520797/

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