У меня есть 3 разных списка с именами: "pos_date_data", "neu_date_data", "neg_date_data". (каждое означает положительное, нейтральное и отрицательное)
они содержат значение даты и времени в форме информационного кадра.
ниже показано, как они выглядят при печати списка. и каждый из них имеет разную длину.
datetime
0 2018-07-04
1 2018-07-04
2 2018-07-04
3 2018-07-04
4 2018-07-04
.. ...
212 2020-02-02
213 2020-02-02
214 2020-02-03
215 2020-02-04
216 2020-02-07
[217 rows x 1 columns]
datetime
0 2018-07-04
1 2018-07-04
2 2018-07-04
3 2018-07-04
4 2018-07-04
... ...
1527 2020-02-09
1528 2020-02-10
1529 2020-02-11
1530 2020-02-11
1531 2020-02-12
[1532 rows x 1 columns]
Из них я пытаюсь объединить их в один DataFrame, используя pandas, python.
для этого я должен посчитать месяцы по датам во всем диапазоне (2018-07 ~ 2020.03). например: если общее число дат 2019-05 года равно 15 в neu_date_data, я хочу отобразить его как целое число в таблице.
Я пробовал этот код:
df = pd.crosstab(neg_date_data['datetime'].dt.month.rename('m'),
neg_date_data['datetime'].dt.year.rename('y'))
и напечатано как: в форме кросс-таблицы, и каждый элемент обозначает количество дат в месяцах.
y 2018 2019 2020
m
1 0 1 17
2 0 0 2
3 0 1 0
4 0 3 0
5 0 12 0
6 0 13 0
7 25 16 0
8 0 36 0
9 0 2 0
10 1 8 0
11 1 5 0
12 2 4 0
Я хочу исправить код тремя способами:
объединить 3 списка и отобразить их один раз.
с полными данными за год и месяц в виде столбцов .
для 3 строк , заголовки каждого списка: 'pos', 'neu', 'neg', а не годы.