python - 如何使用 matplotlib 绘制熊猫数据框行图?
问题描述
下面给出了我的数据框的一个小片段。
UserID Recommendations
0 A001 [(B000OR5928, 5.671419620513916), (B000A1HU1G, 5.435572624206543), (B0039HBNMA, 5.4260640144348145), (B000EEGAJW, 5.502416133880615), (B001L8KE06, 5.508320331573486), (B0002ZO60I, 5.640686511993408), (B0002D0096, 5.543562412261963), (B0013PU75Y, 5.452023506164551), (B005M0TKL8, 5.481754302978516), (B001PGXHYO, 5.5017194747924805)]
1 A002 [(B000EEGAJW, 4.382242679595947), (B004ZKIHVU, 4.182255268096924), (B000CBE3GE, 4.242227077484131), (B000CCJP4I, 4.354374408721924), (B000VBC5CY, 4.342846393585205), (B0002KZHQA, 4.127199649810791), (B0026RB0G8, 4.246310234069824), (B0002D0CQC, 4.275753021240234), (B0002M6CVC, 4.679849624633789), (B0002D0KOG, 4.138158321380615)]
数据框包含两列 UserID 和 Recommendations。推荐列包含推荐给该用户的产品的 productID 以及列表形式的评级。
我想要做的是,如果我点击用户 A001,那么应该会显示一个图表。图表的 y 轴将显示推荐给 A001 的产品 ID,X 轴将显示该产品的评级。这应该在每个用户身份
我知道如何使用 matplotlib 绘制具有单个值的图形,但这里它有一个值列表。我该怎么做。
解决方案
您可以尝试此代码来解决您的问题:
import matplotlib.pyplot as plt
import numpy as np
for i in df.UserID:
ratings = []
productsIDs = []
for points in df.Recommendations[np.where(df.UserID==i)[0]]:
for point in points:
ratings.append(point[1])
productsIDs.append(point[0])
plt.plot(ratings, productsIDs)
plt.show()
推荐阅读
- python - 仅当父数据主体存在时才从 bigquery reddit 数据中选择主体?
- c# - c# sqlite在重新打开程序后未加载
- python - ML Engine:执行本地预测命令时出现预测错误
- python - Flask - 从蓝图中迁移模型
- c - 如何知道在 C 中转换为 void 指针的结构大小?
- javascript - ng-html-bind 用于包含复选框的标签
- javascript - Angular - 如何在加载和保存时禁用/灰显屏幕
- iphone - Xcode 9 中 iPhone 模拟器的截屏视频
- google-chrome-extension - Chrome扩展,如何忽略node_modules在开发中加载更快
- javascript - 为什么按钮禁用后无法重新启用?