построить больше графиков из файла Excel и Pandas (python) - PullRequest
0 голосов
/ 07 июня 2018

У меня есть .xlsx файл, структурированный следующим образом

enter image description here

Теперь я знаю, как управлять данными в моей таблице с помощью функции панд.Тем не менее, я (безуспешно, я должен сказать) ищу способ построить в одной и той же области графика три кривые, помеченные флагами A, B, C в столбце 2, используя col 3 в качестве оси x и col 9 в качестве y-ось.

Я копирую здесь таблицу в удобной форме "копировать и вставлять"

Col1    Col2    Col3    Col4    Col5    Col6        Col7    Col8    Col9
1       FlagA   5743    bla bla 0.02%   13-Apr-18   DS      Y       17229
2       FlagA   654     bla bla -0.89%  13-Apr-18   DS      Y       1962
3       FlagA   543     bla bla -0.74%  13-Apr-18   DS      Y       1629
4       FlagA   321     bla bla -0.56%  13-Apr-18   DS      Y       963
5       FlagA   8765    bla bla -0.37%  13-Apr-18   DS      Y       26295
6       FlagA   98769   bla bla 3.75%   13-Apr-18   DS      Y       296307
7       FlagA   943     bla bla 4.01%   13-Apr-18   DS      Y       2829
8       FlagA   7986    bla bla 4.04%   13-Apr-18   DS      Y       23958
9       FlagA   54343   bla bla 3.27%   13-Apr-18   DS      Y       163029
10      FlagB   876856  bla bla 4.16%   13-Apr-18   DS      Y       2630568
11      FlagB   36854   bla bla 3.36%   13-Apr-18   DS      Y       110562
12      FlagB   3644    bla bla 4.21%   13-Apr-18   DS      Y       10932
13      FlagC   68      bla bla 3.51%   13-Apr-18   DS      Y       204
14      FlagC   354     bla bla 3.70%   13-Apr-18   DS      Y       1062
15      FlagC   568748  bla bla 1.66%   13-Apr-18   DS      Y       1706244
16      FlagC   64      bla bla 2.00%   13-Apr-18   DS      Y       192

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Вы можете использовать pd.DataFrame.plot() непосредственно после группировки DataFrame и установки правильного индекса.

Это работает для меня:

 plotted_df = df[['Col2', 'Col3', 'Col9']].set_index('Col3')
 plotted_df.groupby('Col2')['Col9'].plot()
0 голосов
/ 07 июня 2018

Вы можете попробовать так:

for flag, data in df.groupby('Col2'):
    plt.plot(data['Col3'], data['Col9'], label=flag)

plt.legend()
plt.show()

Чтобы добавить условие, просто используйте выражение if:

for flag, data in df.groupby('Col2'):
    if flag != 'FlagC':
        plt.plot(data['Col3'], data['Col9'], label=flag)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...