python - 在 Python 中为分类变量绘制数字 Y 轴、X 轴时间序列的最佳方法是什么?
问题描述
我的数据框格式如下
Amount Category Transactiondatetime
9445 A16 22-04-2015 19:42
2000 A23 23-04-2015 16:29
1398 A16 02-05-2015 15:17
1995 A7 27-06-2015 13:51
2000 A23 07-08-2015 17:31
变量描述
假设category
变量为网站上销售的某些产品类别。类别变量有大约 15-20 个类别。有的产品一年卖出20次,有的卖出50次,以此类推。
时间序列分布在一年中,数据有 6000000 行。
我的任务目标
我有兴趣查看一年中哪个类别获得最多的金额。这可能有点混乱,因为数据量很大,并且在时间序列尺度上的类别中会有一些重叠。
那么可视化此类数据的最佳方式是什么——它可以是 matplotlib、seaborn 或 bokeh 或任何其他库。
将欣赏代码示例。
解决方案
也许只是使用条形图,y 轴为数量,x 轴为时间?
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('something.csv')
df['Transactiondatetime'] = pd.to_datetime(df['Transactiondatetime'], infer_datetime_format=True)
categories = list(set(df['Category'].tolist()))
fig, ax = plt.subplots()
bar_width = 2.0
for category in categories:
cat_df = df[df['Category'] == category]
times = cat_df['Transactiondatetime'].tolist()
values = cat_df['Amount'].tolist()
ax.bar(times, values, bar_width, label=category)
ax.legend()
plt.xlabel('Transaction Date')
plt.ylabel('Amount')
plt.gcf().autofmt_xdate()
plt.show()
推荐阅读
- vba - IBM Reflection Desktop - 在 V16 中使用 VBA 进行打印
- python - 具有完整(F 类)带宽矩阵的 Python 多元 KDE
- php - 如果产品价格为零或 100% 折扣,则隐藏、删除或禁用 WooCommerce 中的“添加到购物车”按钮
- windows - Docker 连接超时,无法建立连接
- powershell - Powershell在每个while循环后附加csv文件
- objective-c - 使用 Objective-C 访问 .heic 图像文件的深色版本
- junit - Android-JUnit5 未注册仪器!获取上下文时
- mysql - 如何在具有条件的第二个表上使用 Group by 时从左表中检索所有数据
- angular - styles.css - 错误:(0 , _identifier.getUndoPath) 不是函数
- java - Error Creating Bean 错误(Spring Cloud Config Client)