AttributeError: el objeto 'numpy.datetime64' no tiene el atributo 'toordinal'

Estoy tratando de dibujar una línea de tiempo

import datetime          as da
import matplotlib.dates  as dt

# Data
df = pd.DataFrame({'A': [da.datetime(2017,1,5,9,8),   da.datetime(2017,1,5,9,9),  da.datetime(2017,1,7,9,19), da.datetime(2017,1,7,9,19),  da.datetime(2017,1,7,9,19), da.datetime(2017,2,7,9,19), da.datetime(2017,2,7,9,19)],
                   'B': [da.datetime(2017,1,5,9,9),   da.datetime(2017,1,5,9,12), da.datetime(2017,1,7,9,26), da.datetime(2017,1,7,9,20),  da.datetime(2017,1,7,9,21), da.datetime(2017,2,7,9,23), da.datetime(2017,2,7,9,25)],
                   'C' :[1,                           2,                          3,                          4,                           5,                          6,                          7 ]})

# Visualisation
ax = plt.subplot()
ax = plt.hlines(df.C,
    dt.date2num(df.A),
    dt.date2num(df.B))

pero obteniendo el error:

AttributeError: 'numpy.datetime64' object has no attribute 'toordinal'

Creo que es causado por el tipo de datos:

df.A.dtype 
dtype('<M8[ns]')

Probé algunas soluciones recomendadas (convertidor y pandacnv) pero aún no pude hacer que funcionara.

Respuestas a la pregunta(2)

Su respuesta a la pregunta