Как правильно построить этот график с помощью Python

#python #pandas #matplotlib

#python #pandas #matplotlib

Вопрос:

Я пытаюсь построить график ниже, используя python, но я получаю сообщение об ошибке.

введите описание изображения здесь

Команды Python, которые я использую, следующие:

 import pandas as pd
import matplotlib.pyplot as plt


data = pd.read_csv('data/filtro_bovespa_final.csv')

data.loc[(data['codigo'] == 'BBAS3') amp; (data['codigo'] == 'BBDC4')]

data.date = pd.to_datetime(data['date'],format='%Y%m%d')
data.set_index(['date','codigo'])
plt.plot(data.date,data.preco)
plt.show()
  

Ошибка, которую я получаю, это:

Я получил этот график, но это не то, что мне нужно:

введите описание изображения здесь

Файл csv, который я использую: Bovespa

Мне нужен график, который позволяет мне сравнивать цену, связанную с обоими кодами (BBAS3 и BBDC4), как на первом графике, который я показал.

Что еще я должен сделать, чтобы получить нужный мне график?

Комментарии:

1. Что вы пытаетесь сделать с data.plot и data.show . Вы имеете в виду plt.show() ?

2. Судя по сообщению об ошибке, похоже data.show , что произойдет, если я закомментирую?

3. Я исправил это… но я получил другую ошибку… Я обновил вопрос.

4. Соответствуют ли графики представленным вами данным?

5. ДА… данные, которые я представил, приведены на графике рисунка, который я загрузил здесь. Я попытался построить эту же фигуру с помощью python… однако он не работает. Надеюсь, вы сможете мне помочь.

Ответ №1:

Чтобы нарисовать их по атрибутам, мы используем pivot для преобразования фреймов данных в столбцы по атрибутам. Я также изменил условие извлечения на ИЛИ.

 import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('./Data/filtro_bovespa_final.csv')
data.date = pd.to_datetime(data['date'],format='%Y%m%d')

data = data.loc[(data['codigo'] == 'BBAS3') | (data['codigo'] == 'BBDC4')]
data.set_index('date', inplace=True)
data = data.pivot(columns='codigo')
data.columns = ['BBAS3','BBDC4']

data.plot()

plt.show()
  

введите описание изображения здесь