尝试为每个“查询”生成一个图表,其中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。
答案 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()