ParserError: Ошибка токенизации данных. Ошибка C: ожидалось 1 поле в строке 9, было 2 [закрыто] ⇐ Python
-
Anonymous
ParserError: Ошибка токенизации данных. Ошибка C: ожидалось 1 поле в строке 9, было 2 [закрыто]
Я вхожу первым. Я пытаюсь получить данные по акциям
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
Я вхожу первым. Я пытаюсь получить данные по акциям
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
Мобильная версия