就像是
df = pd.DataFrame({'Job ID': [1,2], 'Start Date': ['5/25/2020', '5/25/2020'], 'End Date': ['6/7/2020', '5/31/2020']})
然后,您可以应用一个函数来生成一个新列 'week beginning' - 在这里查看 python 中的解决方案Get week start date (Monday) from a date column in Python (pandas)?
import datetime as dt
# Change 'myday' to contains dates as datetime objects
df['Start Date'] = pd.to_datetime(df['Start Date'])
# 'daysoffset' will container the weekday, as integers
df['daysoffset'] = df['Start Date'].apply(lambda x: x.weekday())
# We apply, row by row (axis=1) a timedelta operation
df['Week Beginning'] = df.apply(lambda x: x['Start Date'] - dt.TimeDelta(days=x['daysoffset']), axis=1)
然后是本周开始的 groupby
counr = df.groupby(df['Week Beginning']).sum()
在此之后,您可以使用
count_by_job_id = count['Job ID']
pd.DataFrame(count_by_job_id).plot.bar()