【发布时间】:2020-02-08 12:38:48
【问题描述】:
data.CSV
ID Activity Month Activity Date
0 04/2019 04-01-2019
1 05/2019 05-13-2019
2 05/2019 05-25-2019
3 06/2019 06-10-2019
4 06/2019 06-19-2019
5 07/2019 07-15-2019
6 07/2019 07-18-2019
7 07/2019 07-29-2019
8 08/2019 06-03-2019
9 08/2019 06-15-2019
10 08/2019 06-20-2019
我的计划
读取 csv:
df = pd.read_csv('data.CSV')
转换为日期时间:
df['活动日期'] = pd.to_datetime(df['活动日期'], dayfirst=True)
按活动月份列分组:
grouped = df.groupby(['活动月份'])['活动日期'].count()
打印(分组)
Activity Month
04/2019 15532
05/2019 13924
06/2019 12822
07/2019 14067
08/2019 10939
Name: Activity Date, dtype: int64
对日期进行分组时,执行工作日计算:
这部分我不知道该怎么做。已经迷路了
我用来计算工作日的代码
import calendar
import datetime
x = datetime.date(2019, 4, 1)
cal = calendar.Calendar()
working_days = len([x for x in cal.itermonthdays2(x.year, x.month) if x[0] !=0 and x[1] < 5])
print ("Total business days for month (" + str(x.month) + ") is " + str(working_days) + " days")
我想要的输出
Total business days for month (4) is 22 days
Total business days for month (5) is 23 days
Total business days for month (6) is 20 days
Total business days for month (7) is 23 days
Total business days for month (8) is 22 days
【问题讨论】:
-
评论不要忘记这个,我在我的手机上,会在几个小时内检查并给你答案。我最近也在使用这个库!
-
感谢@CeliusStingher 的努力
标签: python pandas datetime pandas-groupby