Почему этот код нормально работает в Jupyter, но не в режиме ожидания?

#python #jupyter #python-idle

Вопрос:

Я сделал этот инструмент для очистки PDF-файлов, который я могу запускать в ноутбуке Juypter, отлично, однако, когда я перевожу его в режим ожидания, я получаю код ошибки внизу. Ключевых ошибок нет, поэтому я не уверен, почему результат не печатается!

Я новичок в этом, поэтому очень ценю любую помощь.

 # In[46]:
import tabula
import pandas as pd


# In[52]:
URL = "http://ir.eia.gov/wpsr/overview.pdf"
table = tabula.read_pdf(URL,pages=1)
df = table[0]
df


# In[102]:
i = 4
result = []
while i < 23:
    phrase1 = df.iloc[i][2] 
    phrase2 = df.iloc[i][3]
    dot = phrase1.find(".")
    plus = int(dot)   2
    left = phrase1[:dot]
    right = phrase1[dot:int(plus)]
    new_crude = (left   right)
    
    dot2 = phrase2.find(".")
    plus2 = int(dot)   2
    left2 = phrase2[:dot2]
    right2 = phrase2[dot2:int(plus2)]
    old_crude = (left2   right2)
    
    
    num = float(new_crude.replace(',','')) - float(old_crude.replace(',',''))
    result.append(round(num,2))
    
    i = i 1
result


# In[100]:
products = ["EIA (OCAL):",
"CRUDE:",
"GASOLINE:",
"DISTILLATE FUEL OIL:",
"PROPANE:"]
products


# In[109]:
print(products[0])
print(products[1] str(result[1]) "m")
print(products[2] str(result[3]) "m")
print(products[3] str(result[9]) "m")
print(products[4] str(result[14]) "m")


# In[ ]:
ERROR:
Traceback (most recent call last):
  File "C:UserscbullockAppDataLocalProgramsPythonPython39libsite-packagespandascoreindexesbase.py", line 2895, in get_loc
    return self._engine.get_loc(casted_key)
  File "pandas_libsindex.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc
  File "pandas_libsindex.pyx", line 101, in pandas._libs.index.IndexEngine.get_loc
  File "pandas_libshashtable_class_helper.pxi", line 1675, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas_libshashtable_class_helper.pxi", line 1683, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 0

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:UserscbullockAppDataLocalProgramsPythonPython39EIA weekly - Automated (CB and EM).py", line 22, in <module>
    df = table[0]
  File "C:UserscbullockAppDataLocalProgramsPythonPython39libsite-packagespandascoreframe.py", line 2906, in __getitem__
    indexer = self.columns.get_loc(key)
  File "C:UserscbullockAppDataLocalProgramsPythonPython39libsite-packagespandascoreindexesbase.py", line 2897, in get_loc
    raise KeyError(key) from err
KeyError: 0
 

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

1. Используете ли вы один и тот же интерпретатор python в обеих средах?

2. Ваше заявление о том, что «Нет ключевых ошибок», расходится с сообщением об ошибке, которое вы получаете.

Ответ №1:

Это потому, что вы установили неправильный пакет с помощью pip (с помощью Jupyter он автоматически установил правильный).

Вам нужно установить tabula-py, а не tabula

 pip install tabula-py
 

это правильный путь.

Вам не следует этого делать

 pip install tabula 
 

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

1. Отлично, это сделало свою работу — спасибо!!

2. Рад, что смог помочь!