【问题标题】:Last 3 months of this year in python今年最后3个月在python
【发布时间】:2019-07-29 18:07:26
【问题描述】:

我正在使用 python 来读取一个 excel 文件。 Excel 文件包含一个“日期”列。 我的问题是如果excel表格中的日期在今年的最后3个月,如何检查python。

Excel表格:

Date
2018-01-20
2018-10-01
2018-10-01
2018-11-01
2018-11-17

我的代码是这样的:

for i in content:
    valuerContent = content[(content['valuer'] == 'ahmad') & (content['Date'] == ??)]

我应该写什么而不是'??'获得所需的结果

【问题讨论】:

  • 您可以将代码和数据复制到问题中而不是链接到照片吗?
  • 不是答案,因为我是 python 的新手,但我认为日历功能会有所帮助:docs.python.org/2/library/calendar.html
  • @RockyLi 这不起作用,如果您想回答这个问题,请在回答中这样做。我还鼓励您等到 OP 按照 Nick Vitha 的要求 edited 他的问题。
  • 你可以试试datetime 模块吗?
  • 您可能会提取月份并查看它是 10、11 还是 12,或者更简单地说,大于 9,因为它不太可能超过 12。

标签: python excel csv date


【解决方案1】:

假设 content['Date'] 是一个字符串

 valuerContent = content[(content['valuer'] == 'ahmad') and int(content['Date'].split('-')[1]) >= 10

【讨论】:

    【解决方案2】:

    只在 python 中编码 4 个月,但从外观上看,您可以使用 datetime 模块。下面是一些例子

    import datetime as dt
    
    check_date = (2018,11,01)
    
    current_date = (2018,12,31)  #assuming you want to check the year 2018
    
    if (current_date[1] - check_date[1]) < 3:
        #insert code
    

    datetime 允许您通过元组索引访问月/日/年。其中 [0] 是年,[1] 是月,[2] 是日,依此类推。

    【讨论】:

    • 这很有趣。我总是像check_date = dt.date(year=2018, month=11, day=1);print(check_date.month) 那样做。我认为我的方法更具可读性,但在声明 check_date 时似乎更像是打字。
    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    相关资源
    最近更新 更多