为甘特图减去 Python 中的日期

Subtracting dates in Python for Gantt chart

我正在按照本教程制作甘特图的教程进行操作: https://towardsdatascience.com/gantt-charts-with-pythons-matplotlib-395b7af72d72

我尝试使用以下脚本重新创建部分测试数据集:

import pandas as pd   

data = [['TSK M', 'IT', '2022-03-17',  '2022-03-20', '0.0'], ['TSK N', 'MKT', '2022-03-17', '2022-03-19',  '0.0']]    

df = pd.DataFrame(data, columns = ['Task', 'Department',  'Start', 'End', 'Completion'])

然后通过教程的第一部分处理数据帧,我最终得到错误消息:

proj_start = df['Start'].min()

df['start_num'] = (df.Start-proj_start).dt.days

TypeError: unsupported operand type(s) for -: 'str' and 'str'

我尝试用函数int()将数据转换为整数,但错误依旧存在。有人知道这里出了什么问题吗?

您需要先将日期列转换为日期时间类型

df['Start'] = pd.to_datetime(df['Start'])
df['End'] = pd.to_datetime(df['End'])

# Or

df[['Start', 'End']] = df[['Start', 'End']].apply(pd.to_datetime)