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

Программы на 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/algopack/eq/tradestats/{ticker}.csv?from={start_date}&till={end_date}&iss.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/markets/shares/boards/{market}/securities.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)
и тут появляется ошибка
Я пробовал разные варианты, но ошибка не устранена. Пожалуйста, помогите.

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

как это исправить?

полный текст ошибки
Не могу понять, в чем ошибка. При необходимости могу прислать ссылку
на исходный файл.

Код: Выделить всё

ParserError                               Traceback (most recent call last)
 in ()
1 # Найдем инструменты, среди которых будем искать коинтегрированные пары:
2
----> 3 df_viable = get_viable_historic_data()
4 tickers = df_viable.columns
5 print(tickers)

6 frames
/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/c_parser_wrapper.py in read(self, nrows)
232         try:
233             if self.low_memory:
--> 234                 chunks = self._reader.read_low_memory(nrows)
235                 # destructive to chunks
236                 data = _concatenate_chunks(chunks)

parsers.pyx in pandas._libs.parsers.TextReader.read_low_memory()

parsers.pyx in pandas._libs.parsers.TextReader._read_rows()

parsers.pyx in pandas._libs.parsers.TextReader._tokenize_rows()

parsers.pyx in pandas._libs.parsers.TextReader._check_tokenize_status()

parsers.pyx in pandas._libs.parsers.raise_parser_error()

ParserError: Error tokenizing data. C error: Expected 1 fields in line 9, saw 2
как это исправить?


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

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

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

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

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

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