Python / Pandas / Matplotlib-遍历图表/遍历图表-重复图表问题

时间:2019-01-01 21:01:32

标签: python pandas for-loop matplotlib

尝试为每个“查询”生成一个图表,其中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']中的我:

而df ['sequence'] <2:

关于我还可以如何应对这一挑战的任何见解?试图思考仅对每个“查询”进行一次图表绘制但被困的方法。

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

1 个答案:

答案 0 :(得分: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()