0

尝试为每个“查询”生成一个图表,其中 x 轴上的“关键字”和我的 y 轴上的“趋势”值。

这是我的数据框,称为'df'

                   query    keyword                     trend   sequence
1592    womens underwear    women's underwear on sale   1.40    1
1593    womens underwear    sale on womens underwear    1.40    2
1594    womens underwear    women's underwear for sale  1.40    3
1595    womens underwear    womens underwear sale       1.40    4
3687    womens underwear    womens underwear sale       1.40    5
3802    womens bra          lingerie sleepwear          124.00  1
1705    womens bra          women's n i t bracket       3.00    2
3852    womens bra          best bras for women         2.22    3
3826    womens bra          fantasy bra                 1.75    4
3851    womens bra          32 c bra                    1.71    5

发生的事情是我在我的 for 循环中为每个查询生成“n”个图表。许多重复!

for i in df['query']:
   loopChart = df[df['query']==i]
   plt.figure(figsize=(10,4))
   plt.bar(loopChart['keyword'], loopChart['trend'])
   plt.title(i)
   plt.xticks(rotation=90)
   plt.show()

我在这里尝试了一些没有运气的事情:

1)创建一个序列字段(在我的 DF 示例中)并使用它来限制我的 loopChart 行中的输出

loopChart = df[df['query']==i & df['sequence']==1]

2) 使用我的序列字段作为嵌套的 while 循环条件

对于 df['query'] 中的 i:

而 df['sequence'] <2:

关于我如何应对这一挑战的任何见解?试图想办法只通过一次图表并绘制每个“查询”,但我很难过。

我的最终结果应该只是两个条形图,但现在是 10 个。

4

1 回答 1

0

忽略 - 我用一小段代码解决了这个问题......在我的 for 循环头中添加了一个 .unique() ,这一切都解决了。

for i in df['query'].unique():
   loopChart = df[df['query']==i]
   plt.figure(figsize=(10,4))
   plt.bar(loopChart['keyword'], loopChart['trend'])
   plt.title(i)
   plt.xticks(rotation=90)
   plt.show()
于 2019-01-01T21:04:56.830 回答