为甘特图减去 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)
我正在按照本教程制作甘特图的教程进行操作: 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)