【问题标题】:How to plot a graph of pandas dataframe rows using matplotlib?如何使用 matplotlib 绘制熊猫数据框行图?
【发布时间】:2019-03-21 20:47:49
【问题描述】:

下面给出了我的数据框的一个小片段。

       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 轴将显示该产品的评级。这应该在每个 UserID 的大小写

我知道如何使用 matplotlib 绘制具有单个值的图形,但这里有一个值列表。我该怎么做。

【问题讨论】:

  • 请出示一些代码!如果您提供证据证明您已经尝试过,人们将更有可能提供帮助。
  • 是的,我正在处理它。很快我会用一些代码编辑它,因为即使我不知道如何开始。

标签: python pandas dataframe matplotlib


【解决方案1】:

你可以试试这个代码来解决你的问题:

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()

【讨论】:

  • 嘿,谢谢你的尝试。但这对我不起作用。
  • 不是错误消息,但图表未显示正确的结果。评级的比例错误,产品 ID 未显示在 y 轴上。即使绘图未显示,仅显示 x 和 y 轴.我正在尝试正确排序。
  • 我编辑了我的代码,我在 x 和 y 轴名称上犯了一些错误,现在它应该可以工作了。
猜你喜欢
  • 2021-02-12
  • 2020-06-21
  • 2018-02-10
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多