Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problema de SO (Linux/Windows) #12

Closed
marcelo-ventura opened this issue Jul 5, 2019 · 7 comments
Closed

Problema de SO (Linux/Windows) #12

marcelo-ventura opened this issue Jul 5, 2019 · 7 comments
Labels
bug Something isn't working

Comments

@marcelo-ventura
Copy link

marcelo-ventura commented Jul 5, 2019

Prezado, muito obrigado pela excelente contribuição com seu pacote para a comunidade.

Estou usando o módulo para obter a taxa Selic.

Para windows funciona perfeitamente, porém em linux o seguinte comando me retorna um dataframe com nomes de colunas diferentes:

sgs = SGS()
selic = sgs.get_valores_series(series.SELIC_META, "04/01/2010", dt.date.today().strftime("%d/%m/%Y"))

Em linux tenho as seguintes colunas: 432

                 432

2010-01-04 8,75
2010-01-05 8,75
2010-01-06 8,75
2010-01-07 8,75
2010-01-08 8,75

Em windows ele me retorna como colunas (data, valor)

Obrigado pela atenção.

@rafpyprog
Copy link
Owner

Qual a versão do sgs que você tem instalada?

@rafpyprog rafpyprog added the bug Something isn't working label Jul 6, 2019
@marcelo-ventura
Copy link
Author

A versão é a 1.27.4

@marcelo-ventura
Copy link
Author

Mano, descobri aqui que a versão 1.30.2 é a que apresenta o problema.
A 1.27.4 funcionou perfeitamente no linux.

@rafpyprog
Copy link
Owner

Olá Marcelo,

O problema está resolvido na última versão do pacote (2.0). Peço que atualize a sua instalação:

$ pip install sgs -U

import sgs
import datetime as dt
sgs.time_serie(432, "04/01/2010", dt.date.today().strftime("%d/%m/%Y"))

@marcelo-ventura
Copy link
Author

@rafpyprog , a versão foi atualizada. No linux mint agora a tabela vem sem o nome das colunas, e retorna um pandas series.

Eu consegui contornar isso da seguinte forma:

selic = sgs.time_serie(432, "04/01/2010", dt.date.today().strftime("%d/%m/%Y"))
selic = pd.DataFrame({"DATA":selic.index, "VALOR": selic})

Caso eu use o pd.DataFrame no objeto selic sem especificar as colunas, ele diz que o nome da coluna é 432.

Vou fechar essa issue pois consegui resolver meu problema.

Mas talvez seja melhor que a consulta retorne um dataframe ao invés de um pandas series. Apenas uma sugestão.

Muito obrigado pela atenção.

@rafpyprog
Copy link
Owner

rafpyprog commented Jul 16, 2019

@marcelo-ventura, você consegue obter um dataframe da seguinte forma:

>>> import sgs
>>> import datetime as dt
>>> df = sgs.dataframe(432, "04/01/2010", dt.date.today().strftime("%d/%m/%Y"))
>>> type(df)
<class 'pandas.core.frame.DataFrame'>

Caso deseje gerar um dataframe com múltiplas séries basta passar uma lista com os códigos:

>>> import sgs
>>> import datetime as dt
>>> df = sgs.dataframe([432, 1], "04/01/2010", dt.date.today().strftime("%d/%m/%Y"))
>>> df.head()
             432     1  
2010-01-04  8.75  1.7240
2010-01-05  8.75  1.7227
2010-01-06  8.75  1.7337
2010-01-07  8.75  1.7413
2010-01-08  8.75  1.7390  

Após a versão 2.0 o nome das colunas retornado será o código da série.

@marcelo-ventura
Copy link
Author

Excelente @rafpyprog ! Muito obrigado pelo esclarecimento. Irei fazer dessa forma sugerida.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants