为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas 数据框:仅根据实际日期和最多 7 天保留行

Pandas 数据框:仅根据实际日期和最多 7 天保留行

桃花长相依 2023-10-18 21:42:03
我有一个包含文章的数据框,这是第一篇文章:0   La reprise de l’économie française s’étiole et...   Sur le Vieux-Port, à Marseille, le 28 septembr...   2020-10-061   Aux Etats-Unis, un rapport parlementaire veut ...   Les icones des services de Google, Amazon, Fac...   2020-10-072   Les beaux jours de la médiation en entreprise   Carnet de bureau. Des entreprises appellent de...   2020-10-073   Plan de relance : comment « déterminer mainten...   Tribune. Parmi les multiples critiques entendu...   2020-10-074   Des lauréats du Nobel qui ne le méritaient pas  Chaque automne, depuis plus d’un siècle, le pe...   2015-10-07我只想保留距实际日期最多 7 天的文章。像这样的:实际日期 <= 文章 <= 7 天前的最大值我已经编写了这个代码来抓取文章: %%timelemonde_title = []lemonde_content = []published_date =[]from newspaper import Articlefrom newspaper import ArticleExceptionfrom datetime import datetimefor art_link in all_urls:    try:        art = Article(art_link)        art.download()        art.parse()                lemonde_title.append(art.title)        lemonde_content.append(art.text)                try:            publish_date = datetime.strptime(str(art.publish_date), '%Y-%m-%d %H:%M:%S').strftime('%Y-%M-%D')            published_date.append(publish_date)        except:            published_date.append('unconverted')            except ArticleException:        pass我像这样转换了日期列:# converting the string to datetime format df['date'] = pd.to_datetime(df['date'], format='%Y-%M-%D') 当我尝试以下代码时,出现错误TypeError: Invalid comparison between dtype=datetime64[ns] and date:import datetimedate_before = datetime.date.today() - datetime.timedelta(days=7)df = df[df['date'] >date_before]
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

df = pd.DataFrame({

    'text': ["t1", "t2", "t3"],

    'date' : ['2020-10-06', '2020-10-05', '2012-10-06']

})

df['date'] = pd.to_datetime(df['date'])


till = pd.to_datetime(datetime.date.today() - datetime.timedelta(days=7))

df = df[df['date'] >= till]

输出:


    text    date

0   t1  2020-10-06

1   t2  2020-10-05


查看完整回答
反对 回复 2023-10-18
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

用这个这个有效


    import datetime

    date_before = datetime.date.today() - datetime.timedelta(days=7) 

    df = df[df['date'] >date_before]

您可以按照您想要的方式编辑之前的日期。


查看完整回答
反对 回复 2023-10-18
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

将日期时间导入为 dt df[(dt.datetime.today()-df.date).apply(lambda x: 0<= x.days <7) ]

这应该可以解决问题!


查看完整回答
反对 回复 2023-10-18
  • 3 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信