ParserError: Ошибка токенизации данных. Ошибка C: ожидалось 1 поле в строке 9, было 2 [закрыто]Python

Программы на Python
Ответить
Anonymous
 ParserError: Ошибка токенизации данных. Ошибка C: ожидалось 1 поле в строке 9, было 2 [закрыто]

Сообщение Anonymous »

Я вхожу первым. Я пытаюсь получить биржевые данные
from datetime import datetime
import json

import numpy as np
import statsmodels.api as stats
import statsmodels.tsa.stattools as ts
from statsmodels.tsa.stattools import adfuller
import pandas as pd
import requests
import seaborn

import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)

def get_trade_stats(ticker: str, start_date: str, end_date: str):
url = f'https://iss.moex.com/iss/datashop/algop ... .only=data'
df = pd.read_csv(url, sep=';', skiprows=2)
df['Datetime'] = pd.to_datetime(df['tradedate'] + ' ' + df['tradetime'])
df.set_index("Datetime", inplace=True)
df.drop(['tradedate', 'tradetime'], inplace = True, axis=1)
return df

def get_sec_info(market="TQBR"):
data = requests.get(f'https://iss.moex.com/iss/engines/stock/ ... ities.json').text
registry=json.loads(data)
return pd.DataFrame.from_dict(registry["securities"]["data"])

def get_all_tickers():
df = get_sec_info()
return list(df[0])

def get_close(df):
return df["pr_close"]

def get_historic_data(tickers: list, start_date: str, end_date: str):
tbl = pd.DataFrame(columns=tickers)
for ticker in tickers:
df = get_trade_stats(ticker, start_date, end_date)
tbl [ticker] = get_close(df)
return tbl

all_tickers = get_all_tickers()
print(all_tickers)

def get_viable_historic_data(start_date = '2023-11-20', end_date = '2023-11-30'):
df = get_historic_data(get_all_tickers(), start_date, end_date)
df.dropna(axis='columns', inplace=True) #dropping columns with NaNs
return df

df_viable = get_viable_historic_data()
tickers = df_viable.columns
print(tickers)

Ответ должен быть следующий. Но на самом деле появляется ошибка. Сам код ошибки приведен ниже.
Index(['ABIO', 'AFKS', 'AFLT', 'AGRO', 'ALRS', 'APTK', 'AQUA', 'ASTR', 'BANE',
'BANEP', 'BELU', 'BSPB', 'CBOM', 'CHMF', 'ENPG', 'ETLN', 'FEES', 'FESH',
'FIVE', 'FIXP', 'FLOT', 'GAZP', 'GLTR', 'GMKN', 'HNFG', 'HYDR', 'IRAO',
'KMAZ', 'LKOH', 'MAGN', 'MDMG', 'MGNT', 'MOEX', 'MTLR', 'MTLRP', 'MTSS',
'MVID', 'NLMK', 'NMTP', 'NVTK', 'OGKB', 'OZON', 'PHOR', 'PIKK', 'PLZL',
'POLY', 'POSI', 'RASP', 'RENI', 'RNFT', 'ROLO', 'ROSN', 'RTKM', 'RTKMP',
'RUAL', 'SBER', 'SBERP', 'SELG', 'SFIN', 'SGZH', 'SIBN', 'SNGS',
'SNGSP', 'SOFL', 'TATN', 'TATNP', 'TCSG', 'TGKA', 'TRMK', 'UNAC',
'VKCO', 'VTBR', 'WUSH', 'YNDX'],
dtype='object')

Я получаю следующую ошибку. Вот полный текст. Я не понимаю, что делать. Помогите мне.
ParserError Traceback (most recent call last)
Cell In[5], line 1
----> 1 df_viable = get_viable_historic_data()
2 tickers = df_viable.columns
3 print(tickers)

Cell In[4], line 2
1 def get_viable_historic_data(start_date = '2023-11-20', end_date = '2023-11-30'):
----> 2 df = get_historic_data(get_all_tickers(), start_date, end_date)
3 df.dropna(axis='columns', inplace=True) #dropping columns with NaNs
4 return df

Cell In[2], line 24
22 tbl = pd.DataFrame(columns=tickers)
23 for ticker in tickers:
---> 24 df = get_trade_stats(ticker, start_date, end_date)
25 tbl [ticker] = get_close(df)
26 return tbl

Cell In[2], line 3
1 def get_trade_stats(ticker: str, start_date: str, end_date: str):
2 url = f'https://iss.moex.com/iss/datashop/algop ... .only=data'
----> 3 df = pd.read_csv(url, sep=';', skiprows=2)
4 df['Datetime'] = pd.to_datetime(df['tradedate'] + ' ' + df['tradetime'])
...

File parsers.pyx:2061, in pandas._libs.parsers.raise_parser_error()

ParserError: Error tokenizing data. C error: Expected 1 fields in line 9, saw 2
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...


Подробнее здесь: https://stackoverflow.com/questions/791 ... ne-9-saw-2
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»