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', ' АФЛТ', 'АГРО', 'АЛРС', 'АПТК', 'АКВА', 'АСТР', 'БАНЭ',
'БАНЭП', 'БЕЛУ', 'БСПБ', 'CBOM', 'ЧМФ' , 'ENPG', 'ETLN', 'FEES', 'FESH',
'FIVE', 'FIXP', 'FLOT', 'GAZP', 'GLTR', 'GMKN', 'HNFG', ' ГИДР», «ИРАО»,
КМАЗ, «ЛКОХ», «МАГН», «МДМГ», «МГНТ», «МОБИРЖА», «МТЛР», «МТЛРП», «МТСС»,
'МВИД', 'НЛМК', 'НМТП', 'НВТК', 'ОГКБ', 'ОЗОН', 'ФОР', 'ПИКК', 'ПЛЗЛ',
'ПОЛИ', 'ПОСИ', ' РАСП', 'РЕНИ', 'РНФТ', 'РОЛО', 'РОСН', 'РТКМ', 'РТКМП',
'РУАЛ', 'СБЕР', 'СБЕРП', 'СЭЛГ', 'СФИН' , 'СГЖ', 'СИБН', 'СНГС',
'СНГСП', 'СОФЛ', 'ТАТН', 'ТАТНП', 'ТЦСГ', 'ТГКА', 'ТРМК', 'УНАК','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»