如何合并列表?(数据帧)

2024-10-06 16:14:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个不同的列表,分别命名为:“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]

从它们开始,我尝试使用pandas,python将它们合并到一个数据帧中

为此,我必须在整个范围内(2018-07~2020.03)按日期计算月份。 例如: 如果在neu_date_数据中2019-05的总日期数是15,我想在表中显示为整数

我尝试了以下代码:

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种方式修复代码:

  1. 合并3个列表并显示一次

  2. 将整个“年”和“月”数据设置为

  3. 对于3行,每行的标题为“pos”、“neu”、“neg”,而非年份


Tags: columns数据代码pos列表datadatetimedate
1条回答
网友
1楼 · 发布于 2024-10-06 16:14:43

首先通过^{}将日期时间转换为月份期间,然后一起使用^{},最后一个^{}

我认为对于绘图来说,最好是在行中使用月周期,在列中使用类型:

neg = neg_date_data['datetime'].dt.to_period('m').value_counts()
neu = neu_date_data['datetime'].dt.to_period('m').value_counts()

df = pd.concat([neg, neu], axis=1, keys=('neg','neu'))
print (df)
         neg  neu
2020-02    5    5
2018-07    5    5

df.plot()

相关问题 更多 >