首页 > 解决方案 > 具有 datetime64[ns] 值的堆积条形图。使用第一列作为起点

问题描述

我有一个通过检查点的跑步者数据集,它看起来像这样:

data = {'Runner': ['Tom', 'Joseph', 'Krish'], 
'Start': [30/04/2021 05:27:19, 30/04/2021 05:33:50, 30/04/2021 05:43:32],
'First Checkpoint': [30/04/2021 05:40:45, 30/04/2021 05:36:59, 30/04/2021 05:59:03],
'Second Checkpoint': [30/04/2021 05:42:50, 30/04/2021 05:42:31, 30/04/2021 06:01:19],
'Third Checkpoint': [30/04/2021 05:42:53, 30/04/2021 05:42:33, 30/04/2021 06:01:37]}  

df = pd.DataFrame(data)

我想将此数据可视化为堆积条形图,但使用 Start 列作为图表中的第一个代码。

我的问题是datetime64[ns]matplotlib 不支持,我什至找不到解决方法来开始绘图。

对此有什么帮助吗?

标签: pythonmatplotlibdatetime64

解决方案


您需要使用 pd.to_datetime 将数据转换为正确的 DateTime 格式

data = {'Runner': ['Tom', 'Joseph', 'Krish'], 
        'Start': ['30/04/2021 05:27:19', '30/04/2021 05:33:50', '30/04/2021 05:43:32'],
        'First Checkpoint': ['30/04/2021 05:40:45', '30/04/2021 05:36:59', '30/04/2021 05:59:03'],
        'Second Checkpoint': ['30/04/2021 05:42:50', '30/04/2021 05:42:31', '30/04/2021 06:01:19'],
        'Third Checkpoint': ['30/04/2021 05:42:53', '30/04/2021 05:42:33', '30/04/2021 06:01:37']}  

df = pd.DataFrame(data)

for col in df.columns[1:]:
    df[col] = pd.to_datetime(df[col])
    
df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 5 columns):
 #   Column             Non-Null Count  Dtype         
---  ------             --------------  -----         
 0   Runner             3 non-null      object        
 1   Start              3 non-null      datetime64[ns]
 2   First Checkpoint   3 non-null      datetime64[ns]
 3   Second Checkpoint  3 non-null      datetime64[ns]
 4   Third Checkpoint   3 non-null      datetime64[ns]
dtypes: datetime64[ns](4), object(1)
memory usage: 248.0+ bytes

推荐阅读