O vídeo é muito bom, mas acho que deveria incluir as seguintes linhas no final do script: # VOLTA AO DIRETÓRIO SUPERIOR À PASTA dados_cvm from os.path import expanduser sup_dir = expanduser("~") # VOLTA AO DIRETÓRIO SUPERIOR os.chdir(f"{sup_dir}")
Alguma tabela tem informações acerca do dividendo e JCP? Gostaria de sugerir que faça algo parecido com os dados de fundos imobiliários. Hoje temos mais de 2 milhões de investidores em fiis
Muito bom o vídeo!! eu sou nova nesse trem de Python, mas sou contadora!! eu tive uma dificuldade com esse bloco: " base_dados[['con_ind','tipo_dem']] = base_dados['GRUPO_DFP'].str.split("=" , expand = True) base_dados['con_ind'] = base_dados['con_ind'].str.strip() base_dados['tipo_dem'] = base_dados['tipo_dem'].str.strip() base_dados = base_dados[base_dados["ORDEM_EXERC"] != "PENÚLTIMO"] " ele simplismente não roda ( o passo anterior saiu a tabela com 12083722 linhas × 20 colunas ) o erro que aparece é: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Input In [12], in () ----> 1 base_dados[['con_ind','tipo_dem']] = base_dados['GRUPO_DFP'].str.split("=" , expand = True) 3 base_dados['con_ind'] = base_dados['con_ind'].str.strip() 4 base_dados['tipo_dem'] = base_dados['tipo_dem'].str.strip() File ~\anaconda3\lib\site-packages\pandas\core\frame.py:3643, in DataFrame.__setitem__(self, key, value) 3641 self._setitem_frame(key, value) 3642 elif isinstance(key, (Series, np.ndarray, list, Index)): -> 3643 self._setitem_array(key, value) 3644 elif isinstance(value, DataFrame): 3645 self._set_item_frame_value(key, value) e fiz o minicurso. muito bom tb!!!
Bruna, não sei se vc já conseguiu resolver, mas ali na primeira linha do bloco que vc tá com dificuldade vc digitou '=' no lugar de '-' , o correto seria: base_dados[['con_ind','tipo_dem']] = base_dados['GRUPO_DFP'].str.split("-", expand = True)
Então. Alguns dados são padronizados como a receita líquida, pois estarão sempre sob o código 3.01 da DRE. Entretanto, os dados da DFC como depreciação, aquisição de imobilizado e dividendos pagos estão sempre em códigos ou nomenclatura diferentes. Tem como repadronizar isto? E para piorar, se pegar os dados de anos anteriores, mesmo dentro da mesma empresa, pode haver despadronização de dados...
Sim, isso é normal. Você vai ter que fazer esse ajuste fino no dedo, criar uma amostra de possíveis textos pra representar x dado.. eu já fiz isso aqui internamente pra montar a base de dados dos alunos do código.py
Boa tarde, estive tentando de diversas formas mas não consegui. Quando eu baixei os arquivos zip, tentei abrir o arquivo para ver se estava tudo ok mas deu erro de UTF-8, dae eu pensei " deve estar tentando ler em formato txt" Quando eu tento extrair os arquivos do zip aparece esse erro: "BadZipFile, File is not a zipfile" Não consegui encontrar uma solução, vou pesquisar outras formas.
Substitua a parte do código por essa aqui: lista_demostracoes_2010_2023 = [] diretorio_atual = os.getcwd() for arquivo in os.listdir(diretorio_atual): if arquivo == ".ipynb_checkpoints": continue if arquivo.endswith(".zip"): # Verifique se o arquivo tem a extensão .zip try: arquivo_zip = zipfile.ZipFile(arquivo) for planilha in arquivo_zip.namelist(): demostracao = pd.read_csv(arquivo_zip.open(planilha), sep=";", encoding="ISO-8859-1", dtype={"ORDEM_EXERC": "category"}) lista_demostracoes_2010_2023.append(demostracao) except zipfile.BadZipFile: print(f"O arquivo {arquivo} não é um arquivo ZIP válido e será ignorado.") O código analisa os arquivos em um diretório atual e tenta abrir os arquivos com a extensão .zip. Se um arquivo não for um arquivo ZIP válido, ele será ignorado. Isso é feito para evitar problemas com arquivos corrompidos ou que não são ZIPs válidos. Aparentemente o arquivo de 2020 está corrompido Acredito que isso resolva o problema de vocês!
Fala, paizão! Tranquilidade? Se ligaa, tem uma previsão de quando o curso de Python vai ficar 100% pronto? Ademais, tem uma previsão de quanto vai ser o valor dele?
base_dados = pd.concat(lista_demonstracoes_2010_2022) base_dados Fiz tudo certinho mas nessa parte do código quando coloco parar rodar não aparece a lista e nem erro, alguém pode me auxiliar?
Fala Brenno, boa tarde! Mano, na parte de extrair os arquivos ZIP o meu código está dando um erro como se não existisse arquivos ZIP dentro da pasta, consegue me ajudar? --------------------------------------------------------------------------- BadZipFile Traceback (most recent call last) Input In [21], in () 9 pass 11 else: ---> 13 arquivo_zip = zipfile.ZipFile(arquivo) 15 for planilha in arquivo_zip.namelist(): 17 demonstracao = pd.read_csv(arquivo_zip.open(planilha), sep = ';', encoding = 'ISO-8859-1', 18 dtype = {"ORDEM_EXERC" : "category"}) File ~\anaconda3\lib\zipfile.py:1266, in ZipFile.__init__(self, file, mode, compression, allowZip64, compresslevel, strict_timestamps) 1264 try: 1265 if mode == 'r': -> 1266 self._RealGetContents() 1267 elif mode in ('w', 'x'): 1268 # set the modified flag so central directory gets written 1269 # even if no files are added to the archive 1270 self._didModify = True File ~\anaconda3\lib\zipfile.py:1333, in ZipFile._RealGetContents(self) 1331 raise BadZipFile("File is not a zip file") 1332 if not endrec: -> 1333 raise BadZipFile("File is not a zip file") 1334 if self.debug > 1: 1335 print(endrec) BadZipFile: File is not a zip file
Substitua a parte do código por essa aqui: lista_demostracoes_2010_2023 = [] diretorio_atual = os.getcwd() for arquivo in os.listdir(diretorio_atual): if arquivo == ".ipynb_checkpoints": continue if arquivo.endswith(".zip"): # Verifique se o arquivo tem a extensão .zip try: arquivo_zip = zipfile.ZipFile(arquivo) for planilha in arquivo_zip.namelist(): demostracao = pd.read_csv(arquivo_zip.open(planilha), sep=";", encoding="ISO-8859-1", dtype={"ORDEM_EXERC": "category"}) lista_demostracoes_2010_2023.append(demostracao) except zipfile.BadZipFile: print(f"O arquivo {arquivo} não é um arquivo ZIP válido e será ignorado.") O código analisa os arquivos em um diretório atual e tenta abrir os arquivos com a extensão .zip. Se um arquivo não for um arquivo ZIP válido, ele será ignorado. Isso é feito para evitar problemas com arquivos corrompidos ou que não são ZIPs válidos. Aparentemente o arquivo de 2020 está corrompido Acredito que isso resolva o problema de vocês!
Brenno Sullivan, você é muito bom!! Não deixe de levar em consideração o comentário anterior que fiz. Parabéns.
Caramba, man, tá trabalhando mais que o cozinheiro do Péricles! Vídeo quase todo dia! Valeu por mais esse
Vídeo com conteúdo extraordinário!
Top! você é o cara!
Muito obrigado pelos videos! Conteúdo muito diferenciado
O vídeo é muito bom, mas acho que deveria incluir as seguintes linhas no final do script:
# VOLTA AO DIRETÓRIO SUPERIOR À PASTA dados_cvm
from os.path import expanduser
sup_dir = expanduser("~") # VOLTA AO DIRETÓRIO SUPERIOR
os.chdir(f"{sup_dir}")
Olá, o link do minicurso gratuito de Python que está na descrição do vídeo está levando a uma pagina que diz que o vídeo é privado...
Alguma tabela tem informações acerca do dividendo e JCP? Gostaria de sugerir que faça algo parecido com os dados de fundos imobiliários. Hoje temos mais de 2 milhões de investidores em fiis
Vídeo tooooop
Muito bom o vídeo!!
eu sou nova nesse trem de Python, mas sou contadora!!
eu tive uma dificuldade com esse bloco:
"
base_dados[['con_ind','tipo_dem']] = base_dados['GRUPO_DFP'].str.split("=" , expand = True)
base_dados['con_ind'] = base_dados['con_ind'].str.strip()
base_dados['tipo_dem'] = base_dados['tipo_dem'].str.strip()
base_dados = base_dados[base_dados["ORDEM_EXERC"] != "PENÚLTIMO"]
"
ele simplismente não roda ( o passo anterior saiu a tabela com 12083722 linhas × 20 colunas )
o erro que aparece é:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [12], in ()
----> 1 base_dados[['con_ind','tipo_dem']] = base_dados['GRUPO_DFP'].str.split("=" , expand = True)
3 base_dados['con_ind'] = base_dados['con_ind'].str.strip()
4 base_dados['tipo_dem'] = base_dados['tipo_dem'].str.strip()
File ~\anaconda3\lib\site-packages\pandas\core\frame.py:3643, in DataFrame.__setitem__(self, key, value)
3641 self._setitem_frame(key, value)
3642 elif isinstance(key, (Series, np.ndarray, list, Index)):
-> 3643 self._setitem_array(key, value)
3644 elif isinstance(value, DataFrame):
3645 self._set_item_frame_value(key, value)
e fiz o minicurso. muito bom tb!!!
Bruna, não sei se vc já conseguiu resolver, mas ali na primeira linha do bloco que vc tá com dificuldade vc digitou '=' no lugar de '-' , o correto seria:
base_dados[['con_ind','tipo_dem']] = base_dados['GRUPO_DFP'].str.split("-", expand = True)
Mesmo problema aqui. Não sei ainda o que pode ser. Não é o "=" no lugar do "-".
Achei a resposta. Ao invés de escrever "TRUE" é preciso escrever "True"
Então. Alguns dados são padronizados como a receita líquida, pois estarão sempre sob o código 3.01 da DRE. Entretanto, os dados da DFC como depreciação, aquisição de imobilizado e dividendos pagos estão sempre em códigos ou nomenclatura diferentes. Tem como repadronizar isto? E para piorar, se pegar os dados de anos anteriores, mesmo dentro da mesma empresa, pode haver despadronização de dados...
Sim, isso é normal. Você vai ter que fazer esse ajuste fino no dedo, criar uma amostra de possíveis textos pra representar x dado.. eu já fiz isso aqui internamente pra montar a base de dados dos alunos do código.py
Boa tarde, estive tentando de diversas formas mas não consegui.
Quando eu baixei os arquivos zip, tentei abrir o arquivo para ver se estava tudo ok mas deu erro de UTF-8, dae eu pensei " deve estar tentando ler em formato txt"
Quando eu tento extrair os arquivos do zip aparece esse erro:
"BadZipFile, File is not a zipfile"
Não consegui encontrar uma solução, vou pesquisar outras formas.
Substitua a parte do código por essa aqui:
lista_demostracoes_2010_2023 = []
diretorio_atual = os.getcwd()
for arquivo in os.listdir(diretorio_atual):
if arquivo == ".ipynb_checkpoints":
continue
if arquivo.endswith(".zip"): # Verifique se o arquivo tem a extensão .zip
try:
arquivo_zip = zipfile.ZipFile(arquivo)
for planilha in arquivo_zip.namelist():
demostracao = pd.read_csv(arquivo_zip.open(planilha), sep=";", encoding="ISO-8859-1", dtype={"ORDEM_EXERC": "category"})
lista_demostracoes_2010_2023.append(demostracao)
except zipfile.BadZipFile:
print(f"O arquivo {arquivo} não é um arquivo ZIP válido e será ignorado.")
O código analisa os arquivos em um diretório atual e tenta abrir os arquivos com a extensão .zip. Se um arquivo não for um arquivo ZIP válido, ele será ignorado. Isso é feito para evitar problemas com arquivos corrompidos ou que não são ZIPs válidos. Aparentemente o arquivo de 2020 está corrompido
Acredito que isso resolva o problema de vocês!
Boa noite, obrigado pelo comentário. Ainda não consegui, testei e não deu certo. Vou tentar de outra forma.@@abjoan
Fala, paizão!
Tranquilidade?
Se ligaa, tem uma previsão de quando o curso de Python vai ficar 100% pronto? Ademais, tem uma previsão de quanto vai ser o valor dele?
Fala Igor! O curso deve estar 100% finalizado entre janeiro e fevereiro, mas até dezembro já terá praticamente 90%
o codigo completo dessa aula, ainda está disponivel ?
Descrição!
base_dados = pd.concat(lista_demonstracoes_2010_2022)
base_dados
Fiz tudo certinho mas nessa parte do código quando coloco parar rodar não aparece a lista e nem erro, alguém pode me auxiliar?
ele corrije mais pra frente no video
Fala Brenno, boa tarde!
Mano, na parte de extrair os arquivos ZIP o meu código está dando um erro como se não existisse arquivos ZIP dentro da pasta, consegue me ajudar?
---------------------------------------------------------------------------
BadZipFile Traceback (most recent call last)
Input In [21], in ()
9 pass
11 else:
---> 13 arquivo_zip = zipfile.ZipFile(arquivo)
15 for planilha in arquivo_zip.namelist():
17 demonstracao = pd.read_csv(arquivo_zip.open(planilha), sep = ';', encoding = 'ISO-8859-1',
18 dtype = {"ORDEM_EXERC" : "category"})
File ~\anaconda3\lib\zipfile.py:1266, in ZipFile.__init__(self, file, mode, compression, allowZip64, compresslevel, strict_timestamps)
1264 try:
1265 if mode == 'r':
-> 1266 self._RealGetContents()
1267 elif mode in ('w', 'x'):
1268 # set the modified flag so central directory gets written
1269 # even if no files are added to the archive
1270 self._didModify = True
File ~\anaconda3\lib\zipfile.py:1333, in ZipFile._RealGetContents(self)
1331 raise BadZipFile("File is not a zip file")
1332 if not endrec:
-> 1333 raise BadZipFile("File is not a zip file")
1334 if self.debug > 1:
1335 print(endrec)
BadZipFile: File is not a zip file
Boa tarde!! Você poderia mostrar a resolução?? Aconteceu o mesmo comigo
@@igorsarcinelli3241 Z e P são maiusculo
tive o mesmo erro, como conseguiu corrigir?
Substitua a parte do código por essa aqui:
lista_demostracoes_2010_2023 = []
diretorio_atual = os.getcwd()
for arquivo in os.listdir(diretorio_atual):
if arquivo == ".ipynb_checkpoints":
continue
if arquivo.endswith(".zip"): # Verifique se o arquivo tem a extensão .zip
try:
arquivo_zip = zipfile.ZipFile(arquivo)
for planilha in arquivo_zip.namelist():
demostracao = pd.read_csv(arquivo_zip.open(planilha), sep=";", encoding="ISO-8859-1", dtype={"ORDEM_EXERC": "category"})
lista_demostracoes_2010_2023.append(demostracao)
except zipfile.BadZipFile:
print(f"O arquivo {arquivo} não é um arquivo ZIP válido e será ignorado.")
O código analisa os arquivos em um diretório atual e tenta abrir os arquivos com a extensão .zip. Se um arquivo não for um arquivo ZIP válido, ele será ignorado. Isso é feito para evitar problemas com arquivos corrompidos ou que não são ZIPs válidos. Aparentemente o arquivo de 2020 está corrompido
Acredito que isso resolva o problema de vocês!