在Python中按月计算某个范围内的天数



我正在尝试按月计算一系列日期中的天数。假设一系列日期发生在两个月之间,因为开始日期和结束日期在两个不同的月份。我希望输出显示该范围内的x天数在一个月内下降,x天数在下个月下降。

到目前为止,我的代码每天只输出退伍军人日后10天(我的开始日期(到退伍军人日后20天(结束日期(的范围:

import datetime
Veterans = datetime.datetime(2019, 11, 12)
print(Veterans)
number_of_days = 10
ten_days = datetime.timedelta(days=10)
vetplus10 = Veterans + ten_days
date_list = [(vetplus10 + datetime.timedelta(days=day)).isoformat() for day in range(number_of_days)]
print(date_list)

['2019-11-22T00:00:00','2019-111-23T00:00:00'','2019-21-24T00:00:00'],"2019-11-25T00:00:00"、"2019-111-26T000:00:00"one_answers"2019-15-27T00:00:00","2019-11-28T00:00:00","2019-11-30T00:00:00'",'2019-12-01T00:000']

这里的想法是让python统计11月(9日(和12月(1日(的所有天数。提前谢谢!

您可以尝试使用panda创建一个日期范围,将其转换为一个月并获取值计数。

import pandas as pd
pd.date_range(start='2019-11-22', periods=10, freq='D').to_period('M').value_counts()
2019-11    9
2019-12    1

我能够在不使用额外库的情况下获得类似的输出:

import datetime
Veterans = datetime.datetime(2019, 11, 12)
print(Veterans)
number_of_days = 10
ten_days = datetime.timedelta(days=10)
vetplus10 = Veterans + ten_days
date_list = [(vetplus10 + datetime.timedelta(days=day)) for day in range(number_of_days)]
day_counts = {}
for day in date_list:
day_counts[f"{day.year}-{day.month}"] = day_counts.get(f"{day.year}-{day.month}", 0) + 1
print(day_counts)

2019-11-12 00:00:00

{2019-11':9,2019-12':1}

从本质上讲,我只需迭代原始列表中的日期时间对象,并为它遇到的每个月构建一个字典。

相关内容

  • 没有找到相关文章

最新更新