-
Notifications
You must be signed in to change notification settings - Fork 190
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
Falha ao converter string to float após 45mi linhas #9
Comments
@brunoparodi, infelizmente ainda não consegui baixar o arquivo disponibilizado na sexta. O download do site está muito, muito lento. Enfim, pode ser que os dados atualizados tenham "quebrado" o processamento da carga. Pela exceção que você apresentou, parece ser um problema na hora de converter as colunas de capital_social das empresas e/ou perc_capital dos sócios, que nas versões anteriores ou tinha algum número ou vinham zerados. Se o problema for somente esse, uma solução rápida seria alterar o cnpj.py para tirar a especificação de conversão dessas colunas como "float", nas linhas 98 e 130. Só acho estranho o fato de atualizações referentes a dois meses (desde a última versão em março) terem resultado em um arquivo zip quase 15% maior que o anterior. Temo que possa haver alguma diferença estrutural ou problemas no arquivo disponibilizado, mas não consigo confirmar isso por enquanto. |
@brunoparodi, infelizmente ainda não consegui baixar a última atualização,
a de maio, para poder carregá-la e reproduzir esse erro.
Pode ser que a atualização tenha incluído dados inéditos e que estão
quebrando o processo de carga. Pelo que entendi olhando rapidamente, parece
ser na tentativa de converter a coluna de capital social para float.
O que você pode experimentar agora é tentar tirar essa coluna da conversão
de dtypes. No entanto, a primeira coisa que eu faria seria investigar as
primeiras e últimas linhas do arquivo baixado. Uma coisa que estranhei foi
o fato de o arquivo zipado ter aumentado uns 15% desde a ultima atualização
em março. É muito pouco tempo para ter tanta coisa nova assim. Mas só
avaliando com calma mesmo.
…On Thu, May 30, 2019 at 9:29 AM brunoparodi ***@***.***> wrote:
O problema acontecia antes de mudar a versão do cnpj.py.
Criei um .bat que chama: Z:\GitHub\dadosCNPJ\venv\Scripts\python.exe
cnpj.py "Z:\GitHub\dadosCNPJ\cnpj\F.K032001K.D90511" "csv"
"Z:\GitHub\dadosCNPJ"
Estava acompanhando o progresso, a última visualização que tive foi que
tinha passado das 45.000.000 linhas.
Gerou um empresa.csv de 9.6GB e apresentou o seguinte erro:
O arquivo de CNPJ é do dia 22/05/2019 de 97.433GB - F.K032001K.D90511
Ao que me parece, a string que ele não consegue converter para float é "
", um espaço, pois no prompt é o que dá para selecionar, um espaço vazio.
Z:\GitHub\dadosCNPJ>Z:\GitHub\dadosCNPJ\venv\Scripts\python.exe cnpj.py
"Z:\GitH
ub\dadosCNPJ\cnpj\F.K032001K.D90511" "csv" "Z:\GitHub\dadosCNPJ"
Traceback (most recent call last):7900000.
File "cnpj.py", line 304, in
main()
File "cnpj.py", line 293, in main
cnpj_full(input_path, tipo_output, output_path)
File "cnpj.py", line 169, in cnpj_full
for i, dado in enumerate(dados):
File "Z:\GitHub\dadosCNPJ\cfwf.py", line 104, in _cfwf_chunck_reader
yield _cfwf_chunck(chunk, type_width, colspecs, names, dtype)
File "Z:\GitHub\dadosCNPJ\cfwf.py", line 94, in _cfwf_chunck
.astype(col_type))
File "Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\generic.py",
line
5691, in astype
**kwargs)
File
"Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\internals\manager
s.py", line 531, in astype
return self.apply('astype', dtype=dtype, **kwargs)
File
"Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\internals\manager
s.py", line 395, in apply
applied = getattr(b, f)(**kwargs)
File
"Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\internals\blocks.
py", line 534, in astype
**kwargs)
File
"Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\internals\blocks.
py", line 633, in _astype
values = astype_nansafe(values.ravel(), dtype, copy=True)
File
"Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\dtypes\cast.py",
line 702, in astype_nansafe
return arr.astype(dtype, copy=True)
ValueError: could not convert string to float:
Z:\GitHub\dadosCNPJ>pause
Pressione qualquer tecla para continuar. . .
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#9?email_source=notifications&email_token=AK4SR2VSZWV3CT2FSNKT4QLPX7CCXA5CNFSM4HREUST2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GWWY4SQ>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AK4SR2UK3LAI4GYJSYF2BXLPX7CCXANCNFSM4HREUSTQ>
.
|
Bom dia Fabio, obrigado pela rápida resposta. Alterei as linhas 98 e 130 ({'capital_social': object}, {'perc_capital': object}) e vou executar novamente. Quanto ao download, está extremamente lento e falhando direto, houve atualização dia 24, dois dias depois de eu baixar... essa ainda não consegui. A do dia 22/05/2019 deixei disponibilizado aqui: https://drive.google.com/open?id=10UhGUqgpfCkdzV79pKNQgM-JUTULmRuy Vou executar agora sem as linhas e informo o resultado. Outra coisa, é possível filtrar logo no processamento a UF que eu quero, deixando o arquivo de saída mais leve? |
Bom dia, eu fiz o download já duas vezes e sempre da que os dados estão corrompidos, aconteceu isso com vocês também não consigo nem descompactar, usei um gerenciador de download. |
Faz o download que eu disponibilizei. Quanto as mudanças nas linhas 98 e 130, surgiram efeito. Início do processo 06:35, fim 08:22. Nem 2h. link do arquivo processado, zipado 3GB - https://drive.google.com/open?id=17GfB4uCLoMu0UqfD9znShg2WS0IxMM1a |
Subi uma nova versão do cnpj.py sem a conversão dessas colunas para float, e aproveitei para aprimorar o processamento para imprimir as informações das linhas de header e trailler, além de contabilizar as linhas e confrontá-las com as informações de controle no trailler, dando mais segurança se o arquivo foi completamente convertido. |
Segunda eu testo. |
Alguém já conseguiu fazer o download da versão de maio sem erro de CRC na descompactação? Já tentei duas vezes (e cada vez é sofrida!) e nas duas vezes deu erro de CRC. De qualquer forma rodei o cnpj.py nelas. A primeira vez deu divergência nas quantidades de linhas, o que parece confirmar que o arquivo veio corrompido. A segunda estou rodando nesse momento. @brunoparodi, estou achando que na sua primeira tentativa ele estava dando erro de conversão dos campos para float por provavelmente estar corrompido. Sugiro que tente rodar novamente com a nova versão do cnpj.py para que ele valide as quantidades ao final. |
@brunoparodi, embora o foco do CNPJ-full fosse possibilitar a carga da base em algum BD (no caso dos CSVs, a ideia seria usá-los para fazer carga em SGBDs), de forma a permitir consultas e extrações relativamente rápidas, adicionei a contribuição do @AnthraxisBR para permitir dividir o arquivo empresas.csv por UF ou municípios. |
@fabioserpa o download da receita está corrompido mesmo, rodei o script e vem cnpj espaçado, com menos de 14 digitos, cnae inválido. Situação critica, baixei umas 5 vezes esse arquivo por computadores e redes diferentes e sempre o mesmo problema de arquivo corrompido. |
@fabioserpa @baiter12 Eu também tentei baixar, deixei essa noite pela quarta ou quinta vez já e não deu, tentei por varias redes diferentes também e não baixou o arquivo completo nenhuma vez. |
Eu até consegui fazer o download do arquivo umas 5 vezes tbm, redes e sistemas operacionais diferente, windows 10, centos, ios, mas todos dão falha na hora de descompactar. |
recomendo enviarem uma mensagem na ouvidoria da receita ou informar o Acesso à Informação. |
Utilizei aria2c para efetuar o download do arquivo no site da receita, demorou cerca de 7 horas pra baixar tudo, o arquivo veio todo certinho e tudo ok !! utilizei o script para gerar o arquivo para sqlite e esta tudo ok !!! não deu nenhum erro, tudo perfeito !! |
Quando você baixou? Você usou a versão mais atual do script que apresenta as informações de header e de controle e checa as quantidades? |
Eu baixei o arquivo da receita ontem, é a versão de 15-05-2019, e a sua versão eu clonei do repositório hoje dia 05-06 |
Olá Sr. Fabio Serpa Antemão gostaria de parabenizá-lo pelo excelente material acima apresentado !!! Consegui gerar os arquivos: Porém na hora de rodar:Para separar por UF: Para separar por cidade: Obs.: imagino ter editado o caminho do arquivo "empresas.csv" corretamente. Apareceu a seguinte seguinte mensagem, acredito que estou errando em algum passo.PS H:\Downloads\DADOS_ABERTOS_CNPJ> python3 separar_csv_por_uf.py |
@erijunior1 Você criou o arquivo '.env' no projeto ? Pra rodar os scripts da pasta extra_csv, precisa criar um arquivo .env na raiz do projeto, e informar o caminho dos arquivos .csv no 'root_folder'. Veja o arquivo .env.example do projeto, só copiar ele, renomear pra .env, e colocar o caminho dos arquivos gerados. |
Olá Caros amigos Githubers.@lolmarcelol @ernanisp @fabioserpa @AnthraxisBR @BaiterYamato Não gostaria de ser visto pelos colegas deste grupo como um ASPONE. Como acredito na ideia de ajudar para ser ajudado ou gentileza gera gentileza; gostaria de deixar aqui a minha contribuição para o grupo, nos últimos anos como não obtive muito sucesso em obter a base direto da Receita Federal, achei um outro repositor na internet. E uma empresa que se beneficia destes dados para vende-los em forma de listas para outras empresas !!! Caso alguém tenha interesse nesta base me solicite via e-mail: erijunior1@outlook.com.br Obs.: base gerada em 31-05-2019 6GB |
Caro amigo @AnthraxisBR Eu já havia criado o arquivo conforme o .env.example Fiz as seguintes alterações no arquivo: Nenhuma das mudanças funcionou !!!
|
@erijunior1 faz um teste com: FILES_LOCATION=H:\Downloads\DADOS_ABERTOS_CNPJ\ Não precisa colocar o 'empresas.csv' no final Tem que ter o 'barra' no final ali do files_location |
@AnthraxisBR PS H:\Downloads\DADOS_ABERTOS_CNPJ> python separar_csv_por_uf.py
|
Meu amigo vou abusar um pouco mais de sua boa vontade !!! O acesso remoto ao meu computador se puder dar uma olhadinha agradeço muito !!! |
@erijunior1 testei aqui e ta normal, é alguma configuração ai que ta dando problema, vamo ir debugando aqui: Você clonou o projeto na pasta H:\Downloads\DADOS_ABERTOS_CNPJ ? Segue esses passos:
Esse erro aí ta dizendo que o script separar_csv_por_uf.py não ta na mesma pasta que arquivo 'settings.py', você tirou ele da pasta extra_csv ? Pelo que vi ali, você tirou os scripts da pasta extra_csv, e colocou na pasta H:\Downloads\DADOS_ABERTOS_CNPJ, coloca eles de novo na pasta extra_csv que vai funcionar, deixa todos os arquivos do jeito que estavam, só altera o .env. PS: O anydesk não instala aqui onde eu to. |
Não esta funcionado !!! Primeiramente todos os arquivos estão soltos dentro da pasta : extra_csv (Pasta com os arquivos settings.py | header_dict.py | separar_csv_por_cidade.py |separar_csv_por_uf.py) |
Testei aqui com os arquivos iguais e está funcionando, pode ser algo com dotenv no windows, mas não sei, porém agora não tenho windows aqui pra testar, mas faz outro teste, assim talvez funcione: abre o arquivo: settings.py e deixa ele assim :
se não funcionar, deixa ele assim:
|
Ficou:PS H:\Downloads\DADOS_ABERTOS_CNPJ\extra_csv> python separar_csv_por_uf.py Traceback (most recent call last): se não funcionar, deixa ele assim:
Ficou:PS H:\Downloads\DADOS_ABERTOS_CNPJ\extra_csv> python separar_csv_por_uf.py Traceback (most recent call last): |
Bom dia pessoal, ontem tentei fazer novamente o download do arquivo e estava fora do ar, alguém conseguiu fazer um novo download sem dar problema na hora de descompactar? Eu mandei os e-mail informando que os arquivos estava com problema. Será que arrumaram este arquivo.... |
Então, para a questão de nao dar problemas de no download e na hora de descompactar eu uso o ARIA2C "https://aria2.github.io/". Esse cara me ajuda bastante na questão de download de arquivos grandes. Faca download com esse cara ai tenta descompactar, fiz o download ontem do arquivo e nao tive problemas, no momento ja ate estrai sqlite do arquivo. |
o link está fora do ar. Obrigado pela dica do aria2. |
Pelo visto a receita deixou fora do ar o arquivo, devem estar refazendo para dar reupload (espero eu) |
lançaram na receita http://200.152.38.155/CNPJ/ o arquivo separado em 20 partes, agora é testar para ver se está tudo ok |
Ainda não baixei, mas são arquivos independentes ou dezipam para um mesmo arquivo? Se forem independentes, pelo menos a conversão para sqlite precisará de uma adaptação para ser util |
@fabioserpa pelo que eu vi são arquivos independentes, tendo que rodar o script para estruturar em cada parte e dar um join depois de estruturado |
Não consegui terminar de baixar nem o segundo arquivo ainda (!!!) mas pelo que vi no primeiro, suponho que são arquivos independentes quando zipados, porém com registro header apenas no primeiro e registro de controle apenas no último. Já subi a adaptação do script para suportar essa nova forma. |
Bom dia pessoal, baixei os novos arquivos e tentei rodar deu este erro, de alguem mais deu erro? PS C:\DADOS_ABERTOS_CNPJ> python cnpj.py "C:\DADOS_ABERTOS_CNPJ" sqlite "C:\DADOS_ABERTOS_CNPJ" --dir |
@ernanisp, pelo visto o problema ocorreu no segundo arquivo, onde ainda não cheguei. Só conseguirei trabalhar no debug e ajustes disso mais tarde, porém uma tentativa que você pode fazer é alterar diretamente o cfwf.py na sua máquina e incluir o parâmetro encoding='ISO-8859-15' na chamada do pd.read_fwf() (linhas 39 a 47). Se quiser tentar e nos dar um retorno, seria ótimo. |
Boa tarde @fabioserpa as alterações que você indicou surtiram efeito. Importação realizada com sucesso. PS C:\DADOS_ABERTOS_CNPJ> python cnpj.py "C:\DADOS_ABERTOS_CNPJ" sqlite "C:\DADOS_ABERTOS_CNPJ" --dir Conversao concluida. Validando quantidades: Arquivo SQLITE gerado: C:\DADOS_ABERTOS_CNPJ\CNPJ_full.db Criando índices... Index ix_empresas_cnpj criado. |
@ernanisp, maravilha! Que bom ver que aparentemente deu tudo certo. Quando você copiou esse output o processamento ainda não havia encerrado, certo? Ainda estava criando os índices no sqlite. Depois poderia informar o tempo total do processamento e as suas configurações de máquina? Obrigado. |
Em tempo, já atualizei os scripts no repositório para esse usar esse encoding. |
Todo processo levou umas 2 horas, rodei em um windows 7 sp1, 4gb de ram e core i3. Com um monte de coisa rodando. Gerei o arquivo no formato sqlite e ficou perfeito as informações. Se alguém tiver tendo dificuldade para baixar posso colocar os arquivos no drive. |
startando o processamento aqui, em breve informo o tempo total decorrido e as config. |
1 hora e 24 minutos, windows 10, 16gb ram, intel core i7 7 geração |
Processo show de bola !!! Mesmo sem saber nenhuma linha de programação corretamente, consegui gerar o arquivo em CSV !!! Só não deu certo o script de divisão de UF nem CIDADES !!! Acabei usando o Power Query para efetuar as divisões, deu muito certo !!! PS H:\Downloads\cnpj> python cnpj.py H:\Downloads\cnpj\ csv H:\Downloads\cnpj\ --dir Iniciando processamento em 2019-06-18 10:48:16.953000 INFORMACOES DO HEADER: INFORMACOES DE CONTROLE: Conversao concluida. Validando quantidades: |
Seria ótimo! Pode disponibilizar por favor? |
Boa noite. Para informar a voces. O codigo rodou perfeitamente para gerar os files: empresas.csv, socios.csv e cnae_secundarios.csv. Porem não rodou os python3 separar_csv_por_uf.py & python3 separar_csv_por_cidade.py. O erros que aparecem sao os mesmo, como segue abaixo: Traceback (most recent call last): Seguinte, estou usando sistema UNIX. Se alguem tiver alguma informacao de como extrair as cidades e UF, agradeço. Mas agradeço tambem porque o Job rodou perfeitamente gerando os csv's. Obrigado. |
Acho que a variável location não foi definida, provavelmente porque vc não especificou no ambiente, a linha 5 |
O problema acontecia antes de mudar a versão do cnpj.py.
Criei um .bat que chama: Z:\GitHub\dadosCNPJ\venv\Scripts\python.exe cnpj.py "Z:\GitHub\dadosCNPJ\cnpj\F.K032001K.D90511" "csv" "Z:\GitHub\dadosCNPJ"
Estava acompanhando o progresso, a última visualização que tive foi que tinha passado das 45.000.000 linhas (informação de saída do progresso do programa).
Gerou um empresa.csv de 6,513GB, com 22.067.491 linhas (fiz consulta pelo Excel colocando uma coluna de índices)
O arquivo de CNPJ é do dia 22/05/2019 de 97,433GB - F.K032001K.D90511
Ao que me parece, a string que ele não consegue converter para float é " ", um espaço, pois no prompt é o que dá para selecionar, um espaço vazio.
The text was updated successfully, but these errors were encountered: