У меня проблемы с визуализацией данных даты и времени.
Я хочу написать код, который генерирует диаграмму (график) из даты и времени в формате (%Y%m%d
) с python библиотека matplotlib.
Ниже приведен мой исходный код.
Я написал код, который генерирует список в pandas DataFrame;
neg_date = pd.to_datetime(neg_date, format='%Y-%m-%d')
neg_date_data = pd.DataFrame({'datetime':neg_date})
neg_date
(и вывод выглядит так:)
DatetimeIndex(['2018-07-04', '2018-07-04', '2018-07-04', '2018-07-04',
'2018-07-04', '2018-07-04', '2018-07-04', '2018-07-04',
'2018-07-04', '2018-07-04',
...
'2020-01-19', '2020-01-21', '2020-01-21', '2020-01-23',
'2020-01-24', '2020-01-26', '2020-01-26', '2020-01-27',
'2020-02-01', '2020-02-02'],
dtype='datetime64[ns]', length=149, freq=None)
Теперь мне нужно посчитать количество дат в каждом году-месяце. У меня проблемы с этим. Вот код, который я нашел на этом сайте.
d = {}
neg_d = []
for date in neg_date_list:
pubdate, time = date.split('T')
year, month, date = pubdate.split('-')
if year in d:
if month in d[year]:
d[year][month].append(date)
else:
d[year][month] = [date]
else:
d[year] = {month: [date]}
neg_d.append(d)
#print(json.dumps(d, indent=4))
print(neg_d)
df = pd.DataFrame(neg_d, index = ['monthdate'])
df
(затем вывод)
2018 2019 2020
monthdate {'07': ['04', '04', '04', '04', '04', '04', '0... {'01': ['20', '01', '05', '14', '16', '19', '2... {'01': ['02', '03', '03', '04', '04', '05', '0...
Как извлечь число дат из каждого месяца, а затем сделать график из него?
вот весь код.
pos_date = [i.split('T', 1)[0] for i in pos_date_list]
pos_date = pd.to_datetime(pos_date, format='%Y-%m-%d')
pos_date_data = pd.DataFrame({'datetime':pos_date})
neu_date = [i.split('T', 1)[0] for i in neu_date_list]
neu_date = pd.to_datetime(neu_date, format='%Y-%m-%d')
neu_date_data = pd.DataFrame({'datetime':neu_date})
neg_date = [i.split('T', 1)[0] for i in neg_date_list]
neg_date = pd.to_datetime(neg_date, format='%Y-%m-%d')
neg_date_data = pd.DataFrame({'datetime':neg_date})
neg_date
с кодом ниже:
%matplotlib inline
import random
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.cbook as cbook
startdate = "2018-07-04"
N = 20
drange = pd.date_range(startdate, periods=N, freq="MS")
#generate dataframe
df = pd.DataFrame({'Positive': pos_date ,'Neutral': neu_date ,
'Negative' : neg_date }, index=drange)
введите описание изображения здесь
Как я могу исправить код, чтобы показать разницу в количестве дат?