Как построить график из кадра данных с условием? - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть некоторые данные о некоторых опциях, где я хочу построить данные с условиями либо колла, либо пута. Следующие данные выглядят так:

            underlying_last  exchange  ...   IVBid   IVAsk
underlying                             ...                
BP                    39.00         *  ...  0.0000  4.0743
BP                    39.00         *  ...  0.0000  3.0846
BP                    39.00         *  ...  0.0000  3.9024
BP                    39.00         *  ...  0.0000  2.6644
BP                    39.00         *  ...  0.0000  3.3525

Существует столбец 'type', в котором указывается, является ли опцион колл или пут. Я хочу выбрать только значения вызовов и построить график котировок по отношению к цене. У меня есть следующий код:

#import modules needed
import numpy as np
import pandas_datareader as web
import matplotlib.pyplot as plt
import datetime as dt
import pandas as pd
from matplotlib import style
from matplotlib import rc
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import GPy
from numpy.random import randn

#styel of plot
style.use('default')


df = pd.read_csv('BP_2019.csv',index_col = 'underlying',parse_dates = ['expiration','quotedate'])
c = df['type'] = "call"
x = df[c].index
y = df[c]['bid'].tolist()

fig, ax = plt.subplots()
ax.plot(x,y)

Я получаю следующую ошибку:

  File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item

KeyError: 'call'

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

, чтобы получить x, y для вашей "построите дату котировки против цены" попробуйте:

x = df['date'][df.type == 'call']
y = df['bid'][df.type == 'call']
0 голосов
/ 14 февраля 2020

Попробуйте следующее:

Вместо c = df['type'] = "call"

Использование c = df[df['type'] == "call"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...