如何合并列表? (pandas 数据帧)
how to merge lists? (pandas DataFrame)
我有 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]
我正在尝试使用 pandas、python.
将它们合并到一个 DataFrame 中
为此,我必须在整个范围内(2018-07 ~ 2020.03)按日期计算月份。
例如 :
如果 neu_date_data 中 2019-05 的总日期数是 15,我想在 table.
中将其显示为整数
我试过这段代码:
df = pd.crosstab(neg_date_data['datetime'].dt.month.rename('m'),
neg_date_data['datetime'].dt.year.rename('y'))
并打印为:
十字形table,每一项代表月数
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个列表并显示一次。
将整个 'year' 和 'month' 数据作为 列。
3 行,每个列表的标题:'pos'、'neu'、'neg',而不是年份。
首先通过 Series.dt.to_period
and then use Series.value_counts
, last concat
将日期时间转换为月份周期:
我认为绘图应该更好地使用行中的月份和列中的类型:
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()
我有 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]
我正在尝试使用 pandas、python.
将它们合并到一个 DataFrame 中为此,我必须在整个范围内(2018-07 ~ 2020.03)按日期计算月份。 例如 : 如果 neu_date_data 中 2019-05 的总日期数是 15,我想在 table.
中将其显示为整数我试过这段代码:
df = pd.crosstab(neg_date_data['datetime'].dt.month.rename('m'),
neg_date_data['datetime'].dt.year.rename('y'))
并打印为: 十字形table,每一项代表月数
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个列表并显示一次。
将整个 'year' 和 'month' 数据作为 列。
3 行,每个列表的标题:'pos'、'neu'、'neg',而不是年份。
首先通过 Series.dt.to_period
and then use Series.value_counts
, last concat
将日期时间转换为月份周期:
我认为绘图应该更好地使用行中的月份和列中的类型:
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()