Если вы оставите формат столбца «Время и дата начала» без изменений по умолчанию pandas формат даты и времени и вместо этого обновите формат меток по оси x, ваш код должен работать.
import pandas as pd
frame = pd.DataFrame({'Start Time and Date': ['2013-07-01 00:00:00', '2013-07-01 00:00:02', '2013-07-01 00:01:04',
'2013-07-01 00:01:06', '2013-07-01 00:01:10', '2013-08-01 00:00:00',
'2013-08-01 00:00:02', '2013-09-01 00:01:04', '2013-09-01 00:01:06',
'2013-10-01 00:01:10', '2013-10-01 00:02:10', '2013-11-01 00:03:10',
'2013-12-01 00:03:10', '2013-12-02 00:04:10', '2013-12-03 00:05:10'],
'index': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]})
# Number of records per month
line_chart = frame.copy()
line_chart.index = pd.DatetimeIndex(line_chart['Start Time and Date'])
line_chart = pd.DataFrame(line_chart.resample('M')['index'].count())
line_chart.reset_index(inplace=True)
# Plotly
import plotly.express as px
fig = px.line(line_chart, x='Start Time and Date', y='index')
fig.update_layout(xaxis=dict(tickformat='%m-%Y'))
fig.show()
# Matplotlib
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
x = line_chart['Start Time and Date']
y = line_chart['index']
fig, ax = plt.subplots(figsize=(10, 6))
plt.plot(x, y)
ax.xaxis.set_major_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m-%Y'))
plt.show()