Python / Pandas / Matplotlib - Итерация / Цикл по диаграммам - Проблема с дублирующимися диаграммами - PullRequest
0 голосов
/ 02 января 2019

Попытка создать одну диаграмму для каждого «запроса» с «ключевым словом» на оси 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

Происходит следующее: я создаю 'n' диаграмм в цикле for для каждого запроса.Множество дубликатов!

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 line

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

2) Использование моего поля последовательности в качестве вложенного критерия цикла while

для i в df ['query']:

, а df ['sequence'] <2: </p>

Есть какие-нибудь идеи о том, как еще я могу подойти к этой проблеме?Пытался придумать способы пройти каждый «график» один раз, но я в тупике.

Мой конечный результат должен состоять из двух гистограмм, но сейчас это 10.

1 Ответ

0 голосов
/ 02 января 2019

игнорировать - я решил проблему небольшим кусочком кода ... добавил .unique () в мой заголовок цикла for, и все получилось.

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...