AlertaDengue / PySUS

Library to download, clean and analyze openly available datasets from Brazilian Universal health system, SUS.
GNU General Public License v3.0
173 stars 68 forks source link

No module named 'pysus.utilities.readdbc' #205

Open VieiraJardel opened 1 month ago

VieiraJardel commented 1 month ago

Parece que o PySUS não contém mais o módulo utilities.readdbc. Estou tentando converter um arquivo .dbc para csv do datasus e ao tentar importar essa função surge essa mensagem de erro. Estou usando o colab.

luabida commented 1 month ago

Olá @VieiraJardel, poderias tentar o novo método de conversão de DBC para parquet? Após a conversão para Parquet, você pode usar o método to_dataframe(), depois consegues exportar para CSV com o pandas. Creio que a documentação dos ParquetSets ainda não tenha sido incluida

In [5]: from pysus.data.local import Data

In [6]: file = Data("/home/bida/pysus/ABMG1112.dbc")

In [7]: file # converte para Parquet
Out[7]: /home/bida/pysus/ABMG1112.parquet

In [8]: file.to_dataframe()
Out[8]:
    AP_MVM AP_CONDIC AP_GESTAO AP_CODUNI  ... AB_ANOACOM AB_PONTBAR AB_TABBARR AP_NATJUR
0   201112        PG    310620   0027049  ...       2             0          2
1   201112        PG    310620   0027049  ...                     1          3
2   201112        PG    310620   0027049  ...       05            1          3
3   201112        PG    310620   0027014  ...       04            1          4
4   201112        PG    310620   0027014  ...                     0          2
5   201112        PG    310620   0027049  ...                     1          3
6   201112        PG    310620   0027049  ...       02            1          3
7   201112        PG    310620   0027014  ...       01            1          4
8   201112        PG    310620   0027014  ...                     1          3
9   201112        PG    310620   0027014  ...                     1          4
10  201112        PG    310620   0027049  ...                     1          3
11  201112        PG    310620   0027014  ...                     1          4
12  201112        PG    310620   0027014  ...       03            1          2
13  201112        PG    310620   0027049  ...                     1          3
14  201112        PG    310620   0027014  ...                     0          3
15  201112        PG    310620   0027049  ...                     1          3
16  201112        PG    310620   0027014  ...                     1          3
17  201112        PG    310620   0027049  ...                     1          3
18  201112        PG    310620   0027049  ...       08            1          3
19  201112        PG    310620   0027014  ...                     1          4
20  201112        PG    310620   0027014  ...                     1          2
21  201112        PG    310620   0027049  ...       03            1          3
22  201112        PG    310620   0027014  ...                     1          4
23  201112        PG    310620   0027014  ...                     1          4
24  201112        PG    310620   0027049  ...       02            0          1
25  201112        PG    310620   0027049  ...                     1          3

[26 rows x 58 columns]

In [9]: file.to_dataframe().to_csv("ABMG1112.csv")
vinmaga commented 3 weeks ago

Olá, luabida!

Eu possuo alguns arquivos armazenados localmente que foram lidos com o módulo antigo utilities.readdbc utilizando um readdbc(file, encoding="cp437") com a versao pysus==0.9.4.

Essa nova versão mais atual do pysus, utilizando o módulo from pysus.data.local import Data, não está mais permitidno que eu passe o parâmetro encoding desejado. Alguma sugestão ou possibilidade de o parâmetro encoding ser aplicável novamente?

Obrigado

luabida commented 3 weeks ago

Hey @vinmaga

O pyreaddbc é outro pacote que também é mantido pelo projeto, se quiser podes continuar utilizando o mesmo pacote para leitura de DBC sem problemas