Deputado Histogramado

expressao.xyz/deputado/

Como processar as sessões do parlamento Português

O que se passou nas mais de 4000 sessões de discussão do parlamento Português que ocorreram desde 1976? Neste notebook vamos tentar visualizar o que se passou da maneira mais simples - contando palavras, e fazendo gráficos.

Para obter os textos de todas as sessões usaremos o demo.cratica.org, onde podemos aceder facilmente a todas as sessões do parlamento de 1976 a 2015. Depois com um pouco de python, pandas e matplotlib vamos analisar o que se passou.

Para executar estes notebook será necessário descarregar e abrir com o Jupiter Notebooks (a distribuição Anaconda faz com que instalar todas as ferramentas necessárias seja fácil - https://www.continuum.io/downloads)

Parte 1 - Reunir o dataset

Comecemos por carregar as sessões para um dataframe de pandas, para as podermos analisar mais facilmente. O demo.cratica.org esta organizado /sessoes/ano/mes/dia/. A quantidade todal de dadosé da ordem de 900 MB portanto cuidado com o trafego. E atenção que a transferencia de dados pode demorar bastante.

Para cada data entre 1976 e 2015, vamos tentar transferir a página do democratica. Para as que existem, vamos extrair os dados na tag 'entry-content', remover as translineações e as tags, e passar para lowercase (pois o nosso propósito é contar palavras e ocorrências). Guardemos estes dados em duas listas (lista_datas, lista_sessoes), que depois vao ser transformadas nas duas colunas de um DataFrame de Pandas.


In [9]:
from urllib import request   
import zlib
import pandas
from bs4 import BeautifulSoup #para processar o HTML
import re #para processar o html


lista_datas = []
lista_sessoes = []
bytesTransferidos = 0
i = 0
for ano in range(1976,2016):
    for mes in range(1,13):
        print("Processando %04d/%02d - bytes transferidos = %d..."%(ano,mes,bytesTransferidos))
        for dia in range(1,32): #para cada dia possível, tenta transferiro ficheiro
            url = "http://demo.cratica.org/sessoes/%04d/%02d/%02d/"%(ano,mes,dia)
            #url = "http://localhost:7888/radio-parlamento/backup170221/sessoes/%04d/%02d/%02d/"%(ano,mes,dia)
            #transfere a pagina usando urllib 
            r = request.Request(url)
            try: 
                with request.urlopen(r) as f:   #transfere o site
                    dados = f.read()

                    bytesTransferidos = bytesTransferidos + len(dados)  #contabiliza quanto trafego estamos a usar
                    # os dados em HTML têm mais informaçao do que queremos. vamos seleccionar apenas o elemento 'entre-content', que tem o texto do parlamento
                    dados = ''.join([str(x).strip() for x in BeautifulSoup(dados,'lxml').find('div', class_="entry-content").find_all()])
                    # vamos retirar as tags de paragrafos e corrigir as translineações
                    dados = dados.replace('-</p><p>','').replace('</p>',' ').replace('<p>',' ')
                    # vamos retirar tags que faltem, pois nao interessam para a nossa análise (usando uma expressao regular, e assumindo que o codigo é html válido)
                    dados = re.sub('<[^>]*>', '', dados)
                    # texto para lowercase, para as procuras de palavras funcionarem independentemente da capitalização
                    dados = dados.lower()
                   
                    if(len(dados) > 100): #se o texto nao for inexistente ou demasiado pequeno, adiciona á lista de sessões (há páginas que existem, mas não têm texto)
                        lista_datas.append("%04d-%02d-%02d"%(ano,mes,dia))
                        lista_sessoes.append(dados)

            except request.URLError:  #ficheiro nao existe, passa ao próximo
                pass

print('%d bytes transferidos, %d sessoes transferidas, entre %s e %s'%(bytesTransferidos,len(lista_sessoes), min(lista_datas).format(), max(lista_datas).format()))
    
dados = {'data': pandas.DatetimeIndex(lista_datas), 'sessao': lista_sessoes }
sessoes = pandas.DataFrame(dados, columns={'data','sessao'})


Processando 1976/01 - bytes transferidos = 0...
Processando 1976/02 - bytes transferidos = 0...
Processando 1976/03 - bytes transferidos = 0...
Processando 1976/04 - bytes transferidos = 0...
Processando 1976/05 - bytes transferidos = 0...
Processando 1976/06 - bytes transferidos = 0...
Processando 1976/07 - bytes transferidos = 425102...
Processando 1976/08 - bytes transferidos = 2171521...
Processando 1976/09 - bytes transferidos = 3939266...
Processando 1976/10 - bytes transferidos = 3939266...
Processando 1976/11 - bytes transferidos = 6242384...
Processando 1976/12 - bytes transferidos = 8752193...
Processando 1977/01 - bytes transferidos = 12179703...
Processando 1977/02 - bytes transferidos = 13271241...
Processando 1977/03 - bytes transferidos = 15876096...
Processando 1977/04 - bytes transferidos = 18498836...
Processando 1977/05 - bytes transferidos = 20342062...
Processando 1977/06 - bytes transferidos = 22768112...
Processando 1977/07 - bytes transferidos = 25101746...
Processando 1977/08 - bytes transferidos = 28921977...
Processando 1977/09 - bytes transferidos = 29630620...
Processando 1977/10 - bytes transferidos = 29630620...
Processando 1977/11 - bytes transferidos = 30735667...
Processando 1977/12 - bytes transferidos = 33010978...
Processando 1978/01 - bytes transferidos = 35048493...
Processando 1978/02 - bytes transferidos = 37033339...
Processando 1978/03 - bytes transferidos = 39724855...
Processando 1978/04 - bytes transferidos = 41822885...
Processando 1978/05 - bytes transferidos = 44672889...
Processando 1978/06 - bytes transferidos = 46670679...
Processando 1978/07 - bytes transferidos = 48868882...
Processando 1978/08 - bytes transferidos = 48915151...
Processando 1978/09 - bytes transferidos = 49094378...
Processando 1978/10 - bytes transferidos = 50894627...
Processando 1978/11 - bytes transferidos = 52323989...
Processando 1978/12 - bytes transferidos = 53413013...
Processando 1979/01 - bytes transferidos = 55519346...
Processando 1979/02 - bytes transferidos = 56834390...
Processando 1979/03 - bytes transferidos = 58236545...
Processando 1979/04 - bytes transferidos = 60720564...
Processando 1979/05 - bytes transferidos = 62469586...
Processando 1979/06 - bytes transferidos = 66279211...
Processando 1979/07 - bytes transferidos = 68525485...
Processando 1979/08 - bytes transferidos = 72201914...
Processando 1979/09 - bytes transferidos = 74150086...
Processando 1979/10 - bytes transferidos = 74150086...
Processando 1979/11 - bytes transferidos = 74150086...
Processando 1979/12 - bytes transferidos = 74150086...
Processando 1980/01 - bytes transferidos = 74150086...
Processando 1980/02 - bytes transferidos = 76783360...
Processando 1980/03 - bytes transferidos = 79481543...
Processando 1980/04 - bytes transferidos = 82126183...
Processando 1980/05 - bytes transferidos = 85220456...
Processando 1980/06 - bytes transferidos = 89306764...
Processando 1980/07 - bytes transferidos = 94517445...
Processando 1980/08 - bytes transferidos = 94547999...
Processando 1980/09 - bytes transferidos = 94547999...
Processando 1980/10 - bytes transferidos = 94547999...
Processando 1980/11 - bytes transferidos = 94547999...
Processando 1980/12 - bytes transferidos = 95880548...
Processando 1981/01 - bytes transferidos = 96663248...
Processando 1981/02 - bytes transferidos = 99490162...
Processando 1981/03 - bytes transferidos = 101388058...
Processando 1981/04 - bytes transferidos = 104979633...
Processando 1981/05 - bytes transferidos = 107204457...
Processando 1981/06 - bytes transferidos = 110971917...
Processando 1981/07 - bytes transferidos = 115939952...
Processando 1981/08 - bytes transferidos = 117015783...
Processando 1981/09 - bytes transferidos = 117015783...
Processando 1981/10 - bytes transferidos = 118270357...
Processando 1981/11 - bytes transferidos = 120198263...
Processando 1981/12 - bytes transferidos = 122865004...
Processando 1982/01 - bytes transferidos = 126203874...
Processando 1982/02 - bytes transferidos = 129065831...
Processando 1982/03 - bytes transferidos = 132379045...
Processando 1982/04 - bytes transferidos = 135866191...
Processando 1982/05 - bytes transferidos = 138804381...
Processando 1982/06 - bytes transferidos = 141420766...
Processando 1982/07 - bytes transferidos = 145426375...
Processando 1982/08 - bytes transferidos = 150820927...
Processando 1982/09 - bytes transferidos = 151239583...
Processando 1982/10 - bytes transferidos = 151239583...
Processando 1982/11 - bytes transferidos = 153335665...
Processando 1982/12 - bytes transferidos = 156852451...
Processando 1983/01 - bytes transferidos = 158398670...
Processando 1983/02 - bytes transferidos = 160689835...
Processando 1983/03 - bytes transferidos = 161447001...
Processando 1983/04 - bytes transferidos = 161682650...
Processando 1983/05 - bytes transferidos = 161707760...
Processando 1983/06 - bytes transferidos = 161817010...
Processando 1983/07 - bytes transferidos = 164273685...
Processando 1983/08 - bytes transferidos = 168540610...
Processando 1983/09 - bytes transferidos = 168540610...
Processando 1983/10 - bytes transferidos = 170276620...
Processando 1983/11 - bytes transferidos = 172125705...
Processando 1983/12 - bytes transferidos = 175798481...
Processando 1984/01 - bytes transferidos = 176935723...
Processando 1984/02 - bytes transferidos = 179921540...
Processando 1984/03 - bytes transferidos = 182421328...
Processando 1984/04 - bytes transferidos = 184896601...
Processando 1984/05 - bytes transferidos = 186291703...
Processando 1984/06 - bytes transferidos = 190372236...
Processando 1984/07 - bytes transferidos = 194125892...
Processando 1984/08 - bytes transferidos = 198063268...
Processando 1984/09 - bytes transferidos = 198063268...
Processando 1984/10 - bytes transferidos = 198705299...
Processando 1984/11 - bytes transferidos = 202232830...
Processando 1984/12 - bytes transferidos = 204995086...
Processando 1985/01 - bytes transferidos = 208100134...
Processando 1985/02 - bytes transferidos = 210900981...
Processando 1985/03 - bytes transferidos = 213096886...
Processando 1985/04 - bytes transferidos = 216045042...
Processando 1985/05 - bytes transferidos = 218075163...
Processando 1985/06 - bytes transferidos = 220017214...
Processando 1985/07 - bytes transferidos = 222154216...
Processando 1985/08 - bytes transferidos = 226280923...
Processando 1985/09 - bytes transferidos = 226408324...
Processando 1985/10 - bytes transferidos = 226596746...
Processando 1985/11 - bytes transferidos = 226634442...
Processando 1985/12 - bytes transferidos = 228482844...
Processando 1986/01 - bytes transferidos = 230040654...
Processando 1986/02 - bytes transferidos = 232375829...
Processando 1986/03 - bytes transferidos = 234379664...
Processando 1986/04 - bytes transferidos = 237097885...
Processando 1986/05 - bytes transferidos = 240622203...
Processando 1986/06 - bytes transferidos = 243496012...
Processando 1986/07 - bytes transferidos = 246585959...
Processando 1986/08 - bytes transferidos = 250563978...
Processando 1986/09 - bytes transferidos = 250563978...
Processando 1986/10 - bytes transferidos = 251025334...
Processando 1986/11 - bytes transferidos = 252637737...
Processando 1986/12 - bytes transferidos = 255136310...
Processando 1987/01 - bytes transferidos = 257815946...
Processando 1987/02 - bytes transferidos = 260128508...
Processando 1987/03 - bytes transferidos = 263076382...
Processando 1987/04 - bytes transferidos = 265850035...
Processando 1987/05 - bytes transferidos = 268030832...
Processando 1987/06 - bytes transferidos = 268434241...
Processando 1987/07 - bytes transferidos = 268743041...
Processando 1987/08 - bytes transferidos = 268743041...
Processando 1987/09 - bytes transferidos = 269766678...
Processando 1987/10 - bytes transferidos = 269926859...
Processando 1987/11 - bytes transferidos = 270972674...
Processando 1987/12 - bytes transferidos = 272567012...
Processando 1988/01 - bytes transferidos = 275750308...
Processando 1988/02 - bytes transferidos = 277840428...
Processando 1988/03 - bytes transferidos = 280083541...
Processando 1988/04 - bytes transferidos = 282953602...
Processando 1988/05 - bytes transferidos = 288230725...
Processando 1988/06 - bytes transferidos = 291557380...
Processando 1988/07 - bytes transferidos = 295216553...
Processando 1988/08 - bytes transferidos = 297313373...
Processando 1988/09 - bytes transferidos = 297313373...
Processando 1988/10 - bytes transferidos = 297753922...
Processando 1988/11 - bytes transferidos = 298868428...
Processando 1988/12 - bytes transferidos = 301404384...
Processando 1989/01 - bytes transferidos = 302696197...
Processando 1989/02 - bytes transferidos = 305053791...
Processando 1989/03 - bytes transferidos = 307640765...
Processando 1989/04 - bytes transferidos = 309714629...
Processando 1989/05 - bytes transferidos = 313070334...
Processando 1989/06 - bytes transferidos = 318657709...
Processando 1989/07 - bytes transferidos = 320873392...
Processando 1989/08 - bytes transferidos = 322789866...
Processando 1989/09 - bytes transferidos = 322789866...
Processando 1989/10 - bytes transferidos = 323087951...
Processando 1989/11 - bytes transferidos = 324858852...
Processando 1989/12 - bytes transferidos = 327591999...
Processando 1990/01 - bytes transferidos = 329190233...
Processando 1990/02 - bytes transferidos = 331330158...
Processando 1990/03 - bytes transferidos = 333524508...
Processando 1990/04 - bytes transferidos = 335739032...
Processando 1990/05 - bytes transferidos = 337465151...
Processando 1990/06 - bytes transferidos = 339549640...
Processando 1990/07 - bytes transferidos = 342632621...
Processando 1990/08 - bytes transferidos = 345413597...
Processando 1990/09 - bytes transferidos = 345605070...
Processando 1990/10 - bytes transferidos = 345933803...
Processando 1990/11 - bytes transferidos = 347319848...
Processando 1990/12 - bytes transferidos = 350195933...
Processando 1991/01 - bytes transferidos = 352162019...
Processando 1991/02 - bytes transferidos = 353571551...
Processando 1991/03 - bytes transferidos = 355606359...
Processando 1991/04 - bytes transferidos = 357589593...
Processando 1991/05 - bytes transferidos = 360387347...
Processando 1991/06 - bytes transferidos = 363099748...
Processando 1991/07 - bytes transferidos = 366466361...
Processando 1991/08 - bytes transferidos = 366816238...
Processando 1991/09 - bytes transferidos = 366856581...
Processando 1991/10 - bytes transferidos = 367047351...
Processando 1991/11 - bytes transferidos = 367116918...
Processando 1991/12 - bytes transferidos = 368525138...
Processando 1992/01 - bytes transferidos = 369532735...
Processando 1992/02 - bytes transferidos = 371699982...
Processando 1992/03 - bytes transferidos = 373632325...
Processando 1992/04 - bytes transferidos = 376153815...
Processando 1992/05 - bytes transferidos = 378130627...
Processando 1992/06 - bytes transferidos = 381107086...
Processando 1992/07 - bytes transferidos = 383543340...
Processando 1992/08 - bytes transferidos = 385735519...
Processando 1992/09 - bytes transferidos = 385735519...
Processando 1992/10 - bytes transferidos = 386152419...
Processando 1992/11 - bytes transferidos = 387620490...
Processando 1992/12 - bytes transferidos = 390024817...
Processando 1993/01 - bytes transferidos = 391999030...
Processando 1993/02 - bytes transferidos = 394089806...
Processando 1993/03 - bytes transferidos = 395704564...
Processando 1993/04 - bytes transferidos = 397961533...
Processando 1993/05 - bytes transferidos = 399154792...
Processando 1993/06 - bytes transferidos = 401399667...
Processando 1993/07 - bytes transferidos = 404018853...
Processando 1993/08 - bytes transferidos = 405245915...
Processando 1993/09 - bytes transferidos = 405650880...
Processando 1993/10 - bytes transferidos = 406027316...
Processando 1993/11 - bytes transferidos = 407250110...
Processando 1993/12 - bytes transferidos = 409820137...
Processando 1994/01 - bytes transferidos = 410455185...
Processando 1994/02 - bytes transferidos = 412845285...
Processando 1994/03 - bytes transferidos = 414805801...
Processando 1994/04 - bytes transferidos = 417091274...
Processando 1994/05 - bytes transferidos = 419540250...
Processando 1994/06 - bytes transferidos = 421786901...
Processando 1994/07 - bytes transferidos = 423407509...
Processando 1994/08 - bytes transferidos = 424832826...
Processando 1994/09 - bytes transferidos = 424832826...
Processando 1994/10 - bytes transferidos = 425389651...
Processando 1994/11 - bytes transferidos = 426656020...
Processando 1994/12 - bytes transferidos = 429633841...
Processando 1995/01 - bytes transferidos = 431453240...
Processando 1995/02 - bytes transferidos = 433647607...
Processando 1995/03 - bytes transferidos = 435411529...
Processando 1995/04 - bytes transferidos = 437895661...
Processando 1995/05 - bytes transferidos = 439591311...
Processando 1995/06 - bytes transferidos = 441745250...
Processando 1995/07 - bytes transferidos = 445050329...
Processando 1995/08 - bytes transferidos = 445257850...
Processando 1995/09 - bytes transferidos = 445257850...
Processando 1995/10 - bytes transferidos = 445257850...
Processando 1995/11 - bytes transferidos = 445443640...
Processando 1995/12 - bytes transferidos = 447588521...
Processando 1996/01 - bytes transferidos = 449479123...
Processando 1996/02 - bytes transferidos = 451788514...
Processando 1996/03 - bytes transferidos = 453372634...
Processando 1996/04 - bytes transferidos = 456936154...
Processando 1996/05 - bytes transferidos = 459438781...
Processando 1996/06 - bytes transferidos = 463033641...
Processando 1996/07 - bytes transferidos = 465807390...
Processando 1996/08 - bytes transferidos = 467608165...
Processando 1996/09 - bytes transferidos = 467608165...
Processando 1996/10 - bytes transferidos = 468733037...
Processando 1996/11 - bytes transferidos = 471871541...
Processando 1996/12 - bytes transferidos = 473651480...
Processando 1997/01 - bytes transferidos = 475673390...
Processando 1997/02 - bytes transferidos = 478280713...
Processando 1997/03 - bytes transferidos = 480907545...
Processando 1997/04 - bytes transferidos = 482686336...
Processando 1997/05 - bytes transferidos = 485528456...
Processando 1997/06 - bytes transferidos = 487652399...
Processando 1997/07 - bytes transferidos = 490346034...
Processando 1997/08 - bytes transferidos = 496439300...
Processando 1997/09 - bytes transferidos = 496439300...
Processando 1997/10 - bytes transferidos = 496794930...
Processando 1997/11 - bytes transferidos = 500160190...
Processando 1997/12 - bytes transferidos = 502342615...
Processando 1998/01 - bytes transferidos = 502965546...
Processando 1998/02 - bytes transferidos = 505179369...
Processando 1998/03 - bytes transferidos = 507061827...
Processando 1998/04 - bytes transferidos = 509699670...
Processando 1998/05 - bytes transferidos = 512360106...
Processando 1998/06 - bytes transferidos = 514841090...
Processando 1998/07 - bytes transferidos = 518180976...
Processando 1998/08 - bytes transferidos = 518389659...
Processando 1998/09 - bytes transferidos = 518389659...
Processando 1998/10 - bytes transferidos = 520127947...
Processando 1998/11 - bytes transferidos = 522597100...
Processando 1998/12 - bytes transferidos = 523943647...
Processando 1999/01 - bytes transferidos = 526164828...
Processando 1999/02 - bytes transferidos = 529690856...
Processando 1999/03 - bytes transferidos = 532481484...
Processando 1999/04 - bytes transferidos = 535969041...
Processando 1999/05 - bytes transferidos = 538373036...
Processando 1999/06 - bytes transferidos = 541291784...
Processando 1999/07 - bytes transferidos = 543352363...
Processando 1999/08 - bytes transferidos = 544428668...
Processando 1999/09 - bytes transferidos = 544428668...
Processando 1999/10 - bytes transferidos = 544794407...
Processando 1999/11 - bytes transferidos = 545074035...
Processando 1999/12 - bytes transferidos = 547142497...
Processando 2000/01 - bytes transferidos = 549178053...
Processando 2000/02 - bytes transferidos = 552103228...
Processando 2000/03 - bytes transferidos = 553704235...
Processando 2000/04 - bytes transferidos = 557071636...
Processando 2000/05 - bytes transferidos = 559454136...
Processando 2000/06 - bytes transferidos = 562613870...
Processando 2000/07 - bytes transferidos = 566039166...
Processando 2000/08 - bytes transferidos = 567413226...
Processando 2000/09 - bytes transferidos = 567413226...
Processando 2000/10 - bytes transferidos = 569108121...
Processando 2000/11 - bytes transferidos = 571785299...
Processando 2000/12 - bytes transferidos = 574330682...
Processando 2001/01 - bytes transferidos = 576439877...
Processando 2001/02 - bytes transferidos = 579032196...
Processando 2001/03 - bytes transferidos = 581863826...
Processando 2001/04 - bytes transferidos = 585056640...
Processando 2001/05 - bytes transferidos = 587269944...
Processando 2001/06 - bytes transferidos = 590626840...
Processando 2001/07 - bytes transferidos = 594196189...
Processando 2001/08 - bytes transferidos = 594603500...
Processando 2001/09 - bytes transferidos = 594603500...
Processando 2001/10 - bytes transferidos = 596182382...
Processando 2001/11 - bytes transferidos = 599517441...
Processando 2001/12 - bytes transferidos = 601492094...
Processando 2002/01 - bytes transferidos = 602294362...
Processando 2002/02 - bytes transferidos = 602432858...
Processando 2002/03 - bytes transferidos = 602647597...
Processando 2002/04 - bytes transferidos = 602647597...
Processando 2002/05 - bytes transferidos = 603960035...
Processando 2002/06 - bytes transferidos = 606799244...
Processando 2002/07 - bytes transferidos = 609283635...
Processando 2002/08 - bytes transferidos = 611593354...
Processando 2002/09 - bytes transferidos = 611593354...
Processando 2002/10 - bytes transferidos = 613434920...
Processando 2002/11 - bytes transferidos = 616674560...
Processando 2002/12 - bytes transferidos = 619255252...
Processando 2003/01 - bytes transferidos = 621568360...
Processando 2003/02 - bytes transferidos = 624746481...
Processando 2003/03 - bytes transferidos = 627610549...
Processando 2003/04 - bytes transferidos = 630946148...
Processando 2003/05 - bytes transferidos = 633676649...
Processando 2003/06 - bytes transferidos = 636525177...
Processando 2003/07 - bytes transferidos = 638877933...
Processando 2003/08 - bytes transferidos = 640737089...
Processando 2003/09 - bytes transferidos = 640941233...
Processando 2003/10 - bytes transferidos = 642468966...
Processando 2003/11 - bytes transferidos = 645802136...
Processando 2003/12 - bytes transferidos = 648068461...
Processando 2004/01 - bytes transferidos = 649873260...
Processando 2004/02 - bytes transferidos = 652503431...
Processando 2004/03 - bytes transferidos = 655091555...
Processando 2004/04 - bytes transferidos = 658082481...
Processando 2004/05 - bytes transferidos = 660870206...
Processando 2004/06 - bytes transferidos = 663645296...
Processando 2004/07 - bytes transferidos = 664749579...
Processando 2004/08 - bytes transferidos = 666187468...
Processando 2004/09 - bytes transferidos = 666187468...
Processando 2004/10 - bytes transferidos = 668255487...
Processando 2004/11 - bytes transferidos = 670079784...
Processando 2004/12 - bytes transferidos = 671119207...
Processando 2005/01 - bytes transferidos = 672183432...
Processando 2005/02 - bytes transferidos = 672646139...
Processando 2005/03 - bytes transferidos = 672646139...
Processando 2005/04 - bytes transferidos = 673425150...
Processando 2005/05 - bytes transferidos = 675257152...
Processando 2005/06 - bytes transferidos = 677427118...
Processando 2005/07 - bytes transferidos = 679665507...
Processando 2005/08 - bytes transferidos = 681382165...
Processando 2005/09 - bytes transferidos = 681382165...
Processando 2005/10 - bytes transferidos = 683460704...
Processando 2005/11 - bytes transferidos = 684740139...
Processando 2005/12 - bytes transferidos = 686404408...
Processando 2006/01 - bytes transferidos = 688105991...
Processando 2006/02 - bytes transferidos = 690565355...
Processando 2006/03 - bytes transferidos = 693160104...
Processando 2006/04 - bytes transferidos = 695412611...
Processando 2006/05 - bytes transferidos = 697822573...
Processando 2006/06 - bytes transferidos = 699841850...
Processando 2006/07 - bytes transferidos = 702178056...
Processando 2006/08 - bytes transferidos = 704015767...
Processando 2006/09 - bytes transferidos = 704015767...
Processando 2006/10 - bytes transferidos = 705519674...
Processando 2006/11 - bytes transferidos = 707335814...
Processando 2006/12 - bytes transferidos = 710145619...
Processando 2007/01 - bytes transferidos = 711846120...
Processando 2007/02 - bytes transferidos = 714304212...
Processando 2007/03 - bytes transferidos = 716756390...
Processando 2007/04 - bytes transferidos = 719536864...
Processando 2007/05 - bytes transferidos = 721074295...
Processando 2007/06 - bytes transferidos = 723993659...
Processando 2007/07 - bytes transferidos = 726013806...
Processando 2007/08 - bytes transferidos = 728137819...
Processando 2007/09 - bytes transferidos = 728395805...
Processando 2007/10 - bytes transferidos = 729618608...
Processando 2007/11 - bytes transferidos = 730865982...
Processando 2007/12 - bytes transferidos = 733333725...
Processando 2008/01 - bytes transferidos = 735511786...
Processando 2008/02 - bytes transferidos = 737677504...
Processando 2008/03 - bytes transferidos = 740442843...
Processando 2008/04 - bytes transferidos = 742484238...
Processando 2008/05 - bytes transferidos = 744933098...
Processando 2008/06 - bytes transferidos = 747132764...
Processando 2008/07 - bytes transferidos = 749187309...
Processando 2008/08 - bytes transferidos = 751596142...
Processando 2008/09 - bytes transferidos = 751596142...
Processando 2008/10 - bytes transferidos = 753007098...
Processando 2008/11 - bytes transferidos = 754815421...
Processando 2008/12 - bytes transferidos = 757152714...
Processando 2009/01 - bytes transferidos = 758903142...
Processando 2009/02 - bytes transferidos = 761178486...
Processando 2009/03 - bytes transferidos = 763058390...
Processando 2009/04 - bytes transferidos = 765387717...
Processando 2009/05 - bytes transferidos = 767469647...
Processando 2009/06 - bytes transferidos = 769801748...
Processando 2009/07 - bytes transferidos = 772072419...
Processando 2009/08 - bytes transferidos = 774685706...
Processando 2009/09 - bytes transferidos = 774685706...
Processando 2009/10 - bytes transferidos = 774769106...
Processando 2009/11 - bytes transferidos = 774831800...
Processando 2009/12 - bytes transferidos = 777012209...
Processando 2010/01 - bytes transferidos = 778354075...
Processando 2010/02 - bytes transferidos = 780360356...
Processando 2010/03 - bytes transferidos = 781169046...
Processando 2010/04 - bytes transferidos = 783159283...
Processando 2010/05 - bytes transferidos = 785195236...
Processando 2010/06 - bytes transferidos = 787744130...
Processando 2010/07 - bytes transferidos = 790128363...
Processando 2010/08 - bytes transferidos = 792937745...
Processando 2010/09 - bytes transferidos = 792937745...
Processando 2010/10 - bytes transferidos = 794767353...
Processando 2010/11 - bytes transferidos = 796779584...
Processando 2010/12 - bytes transferidos = 798206060...
Processando 2011/01 - bytes transferidos = 800087581...
Processando 2011/02 - bytes transferidos = 802729551...
Processando 2011/03 - bytes transferidos = 804971893...
Processando 2011/04 - bytes transferidos = 807810955...
Processando 2011/05 - bytes transferidos = 808287960...
Processando 2011/06 - bytes transferidos = 808578214...
Processando 2011/07 - bytes transferidos = 809004223...
Processando 2011/08 - bytes transferidos = 810309489...
Processando 2011/09 - bytes transferidos = 810786885...
Processando 2011/10 - bytes transferidos = 813591703...
Processando 2011/11 - bytes transferidos = 815547414...
Processando 2011/12 - bytes transferidos = 817458911...
Processando 2012/01 - bytes transferidos = 819248041...
Processando 2012/02 - bytes transferidos = 821674306...
Processando 2012/03 - bytes transferidos = 824171627...
Processando 2012/04 - bytes transferidos = 826752233...
Processando 2012/05 - bytes transferidos = 828712417...
Processando 2012/06 - bytes transferidos = 830860225...
Processando 2012/07 - bytes transferidos = 833206263...
Processando 2012/08 - bytes transferidos = 834933296...
Processando 2012/09 - bytes transferidos = 834933296...
Processando 2012/10 - bytes transferidos = 836022472...
Processando 2012/11 - bytes transferidos = 839343691...
Processando 2012/12 - bytes transferidos = 840709474...
Processando 2013/01 - bytes transferidos = 843102207...
Processando 2013/02 - bytes transferidos = 845586715...
Processando 2013/03 - bytes transferidos = 847799564...
Processando 2013/04 - bytes transferidos = 849943132...
Processando 2013/05 - bytes transferidos = 852064645...
Processando 2013/06 - bytes transferidos = 854660230...
Processando 2013/07 - bytes transferidos = 856722465...
Processando 2013/08 - bytes transferidos = 858948982...
Processando 2013/09 - bytes transferidos = 858948982...
Processando 2013/10 - bytes transferidos = 859533666...
Processando 2013/11 - bytes transferidos = 862219492...
Processando 2013/12 - bytes transferidos = 863855388...
Processando 2014/01 - bytes transferidos = 865686950...
Processando 2014/02 - bytes transferidos = 868015816...
Processando 2014/03 - bytes transferidos = 870241531...
Processando 2014/04 - bytes transferidos = 872405459...
Processando 2014/05 - bytes transferidos = 874280530...
Processando 2014/06 - bytes transferidos = 876367548...
Processando 2014/07 - bytes transferidos = 878226018...
Processando 2014/08 - bytes transferidos = 879535297...
Processando 2014/09 - bytes transferidos = 879655346...
Processando 2014/10 - bytes transferidos = 881105010...
Processando 2014/11 - bytes transferidos = 883934919...
Processando 2014/12 - bytes transferidos = 884984254...
Processando 2015/01 - bytes transferidos = 886659264...
Processando 2015/02 - bytes transferidos = 888704455...
Processando 2015/03 - bytes transferidos = 890815381...
Processando 2015/04 - bytes transferidos = 891739073...
Processando 2015/05 - bytes transferidos = 891739073...
Processando 2015/06 - bytes transferidos = 891739073...
Processando 2015/07 - bytes transferidos = 891739073...
Processando 2015/08 - bytes transferidos = 891739073...
Processando 2015/09 - bytes transferidos = 891739073...
Processando 2015/10 - bytes transferidos = 891739073...
Processando 2015/11 - bytes transferidos = 891739073...
Processando 2015/12 - bytes transferidos = 891739073...
891739073 bytes transferidos, 3942 sessoes transferidas, entre 1976-06-03 e 2015-03-13

Agora que temos os dados num dataframe podemos imediatamente tirar partido deles. Por exemplo representar o tamanho das sessoes em bytes ao longo do tempo é straightforward:


In [10]:
%matplotlib inline
import pylab
import matplotlib

#aplica a funcao len/length a cada elemento da series de dados, 
# criando uma columna com o numero de bytes de cada sessao
sessoes['tamanho'] = sessoes['sessao'].map(len)

#representa num grafico
ax = sessoes.plot(x='data',y='tamanho',figsize=(15,6),linewidth=0.1,marker='.',markersize=0.5)
ax.set_xlabel('Data da sessão')
ax.set_ylabel('Tamanho (bytes)')


Out[10]:
<matplotlib.text.Text at 0x11a7b73c8>

A sessão média é mais ou menos constante da ordem dos 200 mil bytes, excepto algumas sessões que periodicamente têm mais conteúdo (até >4x mais caracteres).

A próxima coisa a fazer será guardar os dados, para não os termos que transferir novamente, e podermos usar nas próximas análises:


In [11]:
sessoes.to_csv('sessoes_democratica_org.csv')

Verificando o nome e tamanho do ficheiro:


In [1]:
import os
print(str(os.path.getsize('sessoes_democratica_org.csv')) + ' bytes')
print(os.getcwd()+'/sessoes_democratica_org.csv')


827604554 bytes
/Users/fsilva/expressao.xyz/deputado-histogramado/notebooks/sessoes_democratica_org.csv

Código para carregar os dados:

(este notebook pode ser começado por esta linha, se o ficheiro já existir)


In [1]:
%matplotlib inline
import pylab
import matplotlib
import pandas
import numpy


dateparse = lambda x: pandas.datetime.strptime(x, '%Y-%m-%d')
sessoes = pandas.read_csv('sessoes_democratica_org.csv',index_col=0,parse_dates=['data'], date_parser=dateparse)

Vamos só verificar se os dados ainda estão perceptíveis. Um ponto importante é se os acentos e cedilhas estão bem interpretados, pois gravar e abrir ficheiros pode confundir o python.


In [14]:
sessoes


Out[14]:
sessao data tamanho
0 número 1 sexta-feira, 4 de junho de 1976 di... 1976-06-03 24059
1 número 2 sábado, 5 de junho de 1976 diário ... 1976-06-04 167448
2 número 3 sexta-feira, 9 de julho de 1976 di... 1976-06-08 122209
3 número 4 sábado, 10 julho de 1976 diário da ... 1976-06-09 193163
4 número 5 quarta-feira, 14 de julho de 1976 ... 1976-07-13 192447
5 número 6 quinta-feira, 15 de julho de 1976 d... 1976-07-14 50407
6 número 7 sexta-feira, 16 de julho de 1976 di... 1976-07-15 209123
7 número 8 sábado, 17 de julho de 1976 diário ... 1976-07-16 214826
8 número 9 quarta-feira, 21 de julho de 1976 d... 1976-07-20 311927
9 número 10 quinta-feira 22 de julho de 1976 d... 1976-07-21 219803
10 número 11 sexta-feira, 23 de julho de 1976 ... 1976-07-22 128871
11 número 12 sábado, 24 de julho de 1976 diári... 1976-07-23 186357
12 número 13 quarta-feira, 28 de julho de 1976 ... 1976-07-27 103303
13 número 14 quinta-feira, 29 de julho de 1976 ... 1976-07-28 180726
14 número 15 sexta-feira, 30 de julho de 1976 ... 1976-07-29 116029
15 número 16 sábado, 31 de junho de 1976 diári... 1976-07-30 195241
16 número 17 terça-feira, 3 de agosto de 1976 d... 1976-08-02 217344
17 número 18 sexta-feira 6 de agosto de 1976 d... 1976-08-05 194514
18 número 19 sábado, 7 de agosto de 1976 diári... 1976-08-06 168298
19 número 20 terça-feira, 10 de agosto de 1976 ... 1976-08-09 208957
20 número 21 quinta-feira, 11 de agosto de 1976... 1976-08-10 287489
21 número 22 quinta-feira, 12 de agosto de 1976... 1976-08-11 305455
22 número 23 sexta-feira 13 de agosto de 1976 ... 1976-08-12 179080
23 número 24 sábado, 14 de agosto de 1976 diár... 1976-08-13 100444
24 número 25 quinta-feira, 7 da outubro de 1976... 1976-10-06 90657
25 número 26 quarta-feira, 13 de outubro de 197... 1976-10-12 90666
26 número 27 quinta-feira, 14 de outubro de 197... 1976-10-13 182533
27 número 28 sexta-feira, 15 de outubro de 1976 ... 1976-10-14 161963
28 número 29 sábado, 16 de outubro de 1976 diár... 1976-10-15 344346
29 número 30 quarta-feira, 20 de outubro de 197... 1976-10-19 156015
... ... ... ...
3912 sexta-feira, 19 de dezembro de 2014 sexta-fe... 2014-12-19 153536
3913 sábado, 20 de dezembro de 2014 sábado, 20 de... 2014-12-20 188952
3914 quinta-feira, 8 de janeiro de 2015 quinta-fe... 2015-01-08 197396
3915 sexta-feira, 9 de janeiro de 2015 sexta-feir... 2015-01-09 201821
3916 sábado, 10 de janeiro de 2015 sábado, 10 de ... 2015-01-10 171340
3917 quinta-feira, 15 de janeiro de 2015 quinta-f... 2015-01-15 184026
3918 sexta-feira, 16 de janeiro de 2015 sexta-fei... 2015-01-16 90905
3919 sábado, 17 de janeiro de 2015 sábado, 17 de ... 2015-01-17 131310
3920 quinta-feira, 22 de janeiro de 2015 quinta-f... 2015-01-22 170721
3921 sexta-feira, 23 de janeiro de 2015 sexta-fei... 2015-01-23 264242
3922 quinta-feira, 29 de janeiro de 2015 quinta-f... 2015-01-29 199988
3923 sexta-feira, 30 de janeiro de 2015 sexta-fei... 2015-01-30 126058
3924 sábado, 31 de janeiro de 2015 sábado, 31 de ... 2015-01-31 136396
3925 quinta-feira, 5 de fevereiro de 2015 quinta-... 2015-02-05 162946
3926 sexta-feira, 6 de fevereiro de 2015 sexta-fe... 2015-02-06 160572
3927 sábado, 7 de fevereiro de 2015 sábado, 7 de ... 2015-02-07 142186
3928 quinta-feira, 12 de fevereiro de 2015 quinta... 2015-02-12 162523
3929 sexta-feira, 13 de fevereiro de 2015 sexta-f... 2015-02-13 167273
3930 sábado, 14 de fevereiro de 2015 sábado, 14 d... 2015-02-14 153377
3931 quinta-feira, 19 de fevereiro de 2015 quinta... 2015-02-19 162822
3932 sexta-feira, 20 de fevereiro de 2015 sexta-f... 2015-02-20 112770
3933 sábado, 21 de fevereiro de 2015 sábado, 21 d... 2015-02-21 171413
3934 quinta-feira, 26 de fevereiro de 2015 quinta... 2015-02-26 215250
3935 sexta-feira, 27 de fevereiro de 2015 sexta-f... 2015-02-27 134775
3936 sábado, 28 de fevereiro de 2015 sábado, 28 d... 2015-02-28 186942
3937 quinta-feira, 5 de março de 2015 quinta-feir... 2015-03-05 154155
3938 sexta-feira, 6 de março de 2015 sexta-feira,... 2015-03-06 208806
3939 sábado, 7 de março de 2015 sábado, 7 de març... 2015-03-07 162540
3940 quinta-feira, 12 de março de 2015 quinta-fei... 2015-03-12 160133
3941 sexta-feira, 13 de março de 2015 sexta-feira... 2015-03-13 161785

3942 rows × 3 columns

Tudo OK. Óptimo. Vendo o inicio e fim da tabela reparamos imediatamente que o formato das sessões mudou de 1976 para 2015, de ter 'Número X' primeiro para a data por extenso primeiro. Passemos á frente.


In [ ]:


In [ ]:


In [ ]:


In [ ]: