Блокнот Jupyter, работающий с данными для машинного обучения - PullRequest
0 голосов
/ 17 сентября 2018

Я довольно новичок в работе с ноутбуком Jupyter. В целом мне это нравится, хотя иногда я получаю странные ошибки, которые иногда появляются, а иногда нет. Например, у меня есть набор данных, который выглядит следующим образом (показывает .head ()):

enter image description here

Теперь, если я установлю, скажем, Volume = data ["avg_volume"], а затем произнесу volume.head (), я получу это:

enter image description here

Но допустим, я удалил эту строку и поместил ее куда-то еще, иногда я получаю эту ошибку:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-9c1c4c11ebf0> in <module>()
----> 1 volume = data["avg_volume"]
      2 volume.head()

TypeError: 'float' object is not subscriptable

Я заметил, что делать это после этой строки:

pnl = data["MTM_pnl"]
for data in pnl:
    if(data > 0):
        profit = np.sum(data)
print(profit)

вызовет проблему. Я просто не понимаю, почему это происходит, это не имеет смысла для меня и заставляет меня верить, что использование ноутбука Jupyter - это мусор. Вот код:

# coding: utf-8

# In[1]:


# import modules
import numpy as np
import pandas as pd
import torch
import matplotlib.pyplot as plt
import tensorflow as tf


# In[2]:


# import dataset
data = pd.read_csv('output.csv')
data.head()


# In[3]:


# Goal with data set: The goal is to maximize the PNL column, secondary goals are to minimize MAE (Maximum Adverse Excursion)
# and maximize MFE (Maximum Favorable Excursion). Once a predictable model is established the next step is to work on adding
# alpha by optimizing the stop/take profit logic.
# Assumptions: The thesis is that an earning stock (a stock that has published an earnings report in the past 24 hours) 
# that gaps on open, continues in the direction of the gap.


# In[4]:


# Get statistical information
data.describe()


# In[5]:


# See how correlated each variable is to MTM_pnl
data.corr(method='pearson', min_periods=1)


# In[6]:


# create some histograms
data[data.dtypes[(data.dtypes=="float64")|(data.dtypes=="int64")]
                        .index.values].hist(figsize=[11,11])


# In[7]:


# def maximize_profit(data):
#     LIR = data["LIR"]
#     volume = data["avg_volume"]
#     earnings = data["earning_time"]
volume = data["avg_volume"]
volume.head()


# In[8]:


pnl = data["MTM_pnl"]
for data in pnl:
    if(data > 0):
        profit = np.sum(data)
print(profit)


# In[9]:


volume = data["avg_volume"]
volume.head()

Набор данных можно найти здесь . Нет, само хранилище github не имеет отношения к делу, но это первая идея, которую я должен был дать доступ к набору данных.

1 Ответ

0 голосов
/ 17 сентября 2018

В вашем коде for data in pnl вы переопределили переменную data, поэтому она больше не является DataFrame и не может быть проиндексирована именем столбца.

И, кстати, многие подобные ошибки могутбыть обнаруженным, когда вы пытаетесь создать минимальный, полный, проверяемый пример .Вы заметите, что когда вы удалите цикл for, эта ошибка исчезнет.

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