Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Simcaq_statistics
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Team DB
Simcaq_statistics
Commits
309cfbfd
Commit
309cfbfd
authored
1 year ago
by
dha21
Browse files
Options
Downloads
Patches
Plain Diff
top3 adicionado
parent
fcc84468
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
analise_resultados_muriki.ipynb
+298
-8
298 additions, 8 deletions
analise_resultados_muriki.ipynb
with
298 additions
and
8 deletions
analise_resultados_muriki.ipynb
+
298
−
8
View file @
309cfbfd
...
@@ -2,9 +2,11 @@
...
@@ -2,9 +2,11 @@
"cells": [
"cells": [
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
1
,
"execution_count":
2
,
"id": "e13d5b4a-95a3-404c-bf01-7b4b48b4d121",
"id": "e13d5b4a-95a3-404c-bf01-7b4b48b4d121",
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"outputs": [],
"source": [
"source": [
"import numpy as np\n",
"import numpy as np\n",
...
@@ -14,10 +16,11 @@
...
@@ -14,10 +16,11 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
4
,
"execution_count":
8
,
"id": "3ee220b5-c632-415e-8a0e-76e85f31b5f1",
"id": "3ee220b5-c632-415e-8a0e-76e85f31b5f1",
"metadata": {
"metadata": {
"scrolled": true
"scrolled": true,
"tags": []
},
},
"outputs": [
"outputs": [
{
{
...
@@ -121,7 +124,7 @@
...
@@ -121,7 +124,7 @@
"16 74158 0.066157 1.129997e-22 "
"16 74158 0.066157 1.129997e-22 "
]
]
},
},
"execution_count":
4
,
"execution_count":
8
,
"metadata": {},
"metadata": {},
"output_type": "execute_result"
"output_type": "execute_result"
}
}
...
@@ -150,9 +153,16 @@
...
@@ -150,9 +153,16 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
5
,
"execution_count":
9
,
"id": "ae5ebf5b-a2b3-4d87-af13-62fc187b3ecc",
"id": "ae5ebf5b-a2b3-4d87-af13-62fc187b3ecc",
"metadata": {},
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": true,
"source_hidden": true
},
"tags": []
},
"outputs": [
"outputs": [
{
{
"name": "stdout",
"name": "stdout",
...
@@ -581,6 +591,286 @@
...
@@ -581,6 +591,286 @@
" print(f'NOVAS COLUNAS: {name}')\n",
" print(f'NOVAS COLUNAS: {name}')\n",
" print('\\n')"
" print('\\n')"
]
]
},
{
"cell_type": "code",
"execution_count": 119,
"id": "81aa6d2b-582d-4982-ae36-35eb7ea3a004",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2007\n",
"NUM_SALAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_COMPUTADOR_ADM:\n",
" NUM_COMPUTADOR_ADM\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADOR\n",
"NOVAS COLUNAS: []\n",
"2008\n",
"NUM_SALAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADOR\n",
"NOVAS COLUNAS: []\n",
"2009\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_SALAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_COMPUTADOR_ADM:\n",
" NUM_COMPUTADOR_ADM\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADOR\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NOVAS COLUNAS: []\n",
"2010\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_SALAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_COMPUTADOR_ADM:\n",
" NUM_COMPUTADOR_ADM\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADOR\n",
"NOVAS COLUNAS: []\n",
"2011\n",
"NUM_SALAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADOR\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NUM_COMPUTADOR_ADM:\n",
" NUM_COMPUTADOR_ADM\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NOVAS COLUNAS: []\n",
"2012\n",
"NUM_COMPUTADOR_ADM:\n",
" NUM_COMPUTADOR_ADM\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_SALAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NOVAS COLUNAS: []\n",
"2013\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_SALAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADOR\n",
"NUM_SOM:\n",
" NUM_TV\n",
" NUM_SOM\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NUM_DVD:\n",
" NUM_DVD\n",
"NUM_TV:\n",
" NUM_TV\n",
" NUM_SOM\n",
"NOVAS COLUNAS: ['NUM_DVD' 'NUM_SOM' 'NUM_TV']\n",
"2014\n",
"NUM_SALAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NUM_SOM:\n",
" NUM_TV\n",
"NOVAS COLUNAS: ['NUM_TV']\n",
"2015\n",
"NUM_SOM:\n",
" NUM_SOM\n",
"NUM_SALAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_DVD:\n",
" NUM_DVD\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_TV:\n",
" NUM_TV\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADOR\n",
"NOVAS COLUNAS: ['NUM_DVD' 'NUM_SOM' 'NUM_TV']\n",
"2016\n",
"NUM_TV:\n",
" NUM_TV\n",
"NUM_SOM:\n",
" NUM_SOM\n",
" NUM_COMPUTADOR_ADM\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_SALAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NUM_COMPUTADOR:\n",
" NUM_COMPUTADOR\n",
"NUM_COMPUTADPR_ALUNO:\n",
" NUM_COMPUTADPR_ALUNO\n",
"NOVAS COLUNAS: ['NUM_SOM' 'NUM_TV']\n",
"2017\n",
"NUM_FUNCIONARIOS:\n",
" NUM_FUNCIONARIOS\n",
"NUM_SALAS:\n",
" NUM_SALAS\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
" NUM_SALAS\n",
"NOVAS COLUNAS: []\n",
"2018\n",
"NUM_SALAS:\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
"NOVAS COLUNAS: []\n",
"2019\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_SOM:\n",
" NUM_SOM\n",
"NUM_TV:\n",
" NUM_TV\n",
"NUM_DVD:\n",
" NUM_DVD\n",
"NOVAS COLUNAS: ['NUM_DVD' 'NUM_SOM' 'NUM_TV']\n",
"2020\n",
"NUM_SALAS_UTILIZADAS:\n",
" NUM_SALAS_UTILIZADAS\n",
"NUM_DVD:\n",
" NUM_DVD\n",
"NUM_TV:\n",
" NUM_TV\n",
"NUM_SOM:\n",
" NUM_SOM\n",
"NOVAS COLUNAS: ['NUM_DVD' 'NUM_SOM' 'NUM_TV']\n"
]
}
],
"source": [
"anos = df.ano_coluna1.unique()\n",
"threshold = 0.2\n",
"\n",
"# Itera sobre todos os anos\n",
"for ano in anos:\n",
" # Constroi dataframe do ano\n",
" ano_df = df[(df.ano_coluna1 == ano) & (df.estatistica_f < threshold)]\n",
" \n",
" # Estruturas\n",
" base_columns = ano_df.coluna1.unique() # Colunas que ja existiam na base\n",
" new_columns = ano_df.coluna2.unique() # Colunas do próximo ano\n",
" true_new_columns = np.setdiff1d(new_columns, base_columns) # Colunas que nao existiam na base\n",
" base_empty_columns = np.setdiff1d(base_columns, new_columns) # Colunas da base que nao receberam dados\n",
" all_columns = np.union1d(base_columns, new_columns) # Todas as colunas possiveis\n",
" resultados = [] # Resultados dos matches\n",
" \n",
" # Alterar para um dicionario\n",
" prev_col = [] # Colunas da base para match\n",
" next_col = [] # Colunas do proximo ano para match\n",
" \n",
" \n",
" # Itera sobre o dataframe\n",
" for col in base_columns:\n",
" top3 = ano_df[ano_df.coluna1 == col]\n",
" resultados.append(top3.iloc[:3,:].values)\n",
" \n",
" # Encontra colunas prev que deram match\n",
" all_match_columns = []\n",
" not_match_columns = [] \n",
"\n",
" for res in resultados:\n",
" for i in res:\n",
" next_col = np.union1d(next_col, i[2])\n",
" prev_col = np.union1d(prev_col, i[0])\n",
" \n",
" all_match_columns = np.union1d(next_col, prev_col)\n",
" not_match_columns = np.setdiff1d(all_columns, all_match_columns) \n",
" found_new_columns = np.setdiff1d(new_columns, next_columns)\n",
" \n",
" # Calcula acurácia\n",
" acuracia = 0\n",
" acertos = 0\n",
" for res in resultados:\n",
" for i in res:\n",
" if i[0] == i[2]:\n",
" acertos += 1\n",
" break\n",
" acuracia = acertos / len(base_columns) \n",
" \n",
" # Imprime resultados\n",
" print(ano)\n",
" for res in resultados:\n",
" print(f'{res[0][0]}:')\n",
" for i in res:\n",
" print(f' {i[2]}')\n",
" print(f'NOVAS COLUNAS: {found_new_columns}')\n",
" # print(f'{acuracia}\\n')\n",
" \n",
" "
]
}
}
],
],
"metadata": {
"metadata": {
...
@@ -599,7 +889,7 @@
...
@@ -599,7 +889,7 @@
"name": "python",
"name": "python",
"nbconvert_exporter": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"pygments_lexer": "ipython3",
"version": "3.1
2.3
"
"version": "3.1
1.4
"
}
}
},
},
"nbformat": 4,
"nbformat": 4,
...
...
%% Cell type:code id:e13d5b4a-95a3-404c-bf01-7b4b48b4d121 tags:
%% Cell type:code id:e13d5b4a-95a3-404c-bf01-7b4b48b4d121 tags:
```
python
```
python
import
numpy
as
np
import
numpy
as
np
import
pandas
as
pd
import
pandas
as
pd
from
tabulate
import
tabulate
from
tabulate
import
tabulate
```
```
%% Cell type:code id:3ee220b5-c632-415e-8a0e-76e85f31b5f1 tags:
%% Cell type:code id:3ee220b5-c632-415e-8a0e-76e85f31b5f1 tags:
```
python
```
python
# Importa CSV, ordena por ano e metrica
# Importa CSV, ordena por ano e metrica
df
=
pd
.
read_csv
(
'
Testes_R/Result_F/F_subsequente.csv
'
,
sep
=
'
,
'
)
df
=
pd
.
read_csv
(
'
Testes_R/Result_F/F_subsequente.csv
'
,
sep
=
'
,
'
)
# Coluna contendo a estatistica a ser analisada
# Coluna contendo a estatistica a ser analisada
stat_column
=
'
estatistica_f
'
stat_column
=
'
estatistica_f
'
# Tira absoluto pro teste F
# Tira absoluto pro teste F
df
[
stat_column
]
=
(
df
[
stat_column
]
-
1
).
abs
()
df
[
stat_column
]
=
(
df
[
stat_column
]
-
1
).
abs
()
# Tira absoluto pro teste Cohen
# Tira absoluto pro teste Cohen
#df[stat_column] = df[stat_column].abs()
#df[stat_column] = df[stat_column].abs()
# Ordena para buscar os mais proximos a 0
# Ordena para buscar os mais proximos a 0
df
=
df
.
sort_values
(
by
=
[
'
ano_coluna1
'
,
stat_column
])
df
=
df
.
sort_values
(
by
=
[
'
ano_coluna1
'
,
stat_column
])
# Remove coluna ANO_CENSO
# Remove coluna ANO_CENSO
df
=
df
[
~
df
[
'
coluna1
'
].
str
.
contains
(
'
ANO_CENSO
'
)
&
~
df
[
'
coluna2
'
].
str
.
contains
(
'
ANO_CENSO
'
)]
df
=
df
[
~
df
[
'
coluna1
'
].
str
.
contains
(
'
ANO_CENSO
'
)
&
~
df
[
'
coluna2
'
].
str
.
contains
(
'
ANO_CENSO
'
)]
df
.
head
()
df
.
head
()
```
```
%% Output
%% Output
coluna1 ano_coluna1 coluna2 ano_coluna2 \
coluna1 ano_coluna1 coluna2 ano_coluna2 \
40 NUM_SALAS 2007 NUM_SALAS 2008
40 NUM_SALAS 2007 NUM_SALAS 2008
48 NUM_SALAS_UTILIZADAS 2007 NUM_SALAS_UTILIZADAS 2008
48 NUM_SALAS_UTILIZADAS 2007 NUM_SALAS_UTILIZADAS 2008
24 NUM_COMPUTADPR_ALUNO 2007 NUM_COMPUTADPR_ALUNO 2008
24 NUM_COMPUTADPR_ALUNO 2007 NUM_COMPUTADPR_ALUNO 2008
32 NUM_FUNCIONARIOS 2007 NUM_FUNCIONARIOS 2008
32 NUM_FUNCIONARIOS 2007 NUM_FUNCIONARIOS 2008
16 NUM_COMPUTADOR_ADM 2007 NUM_COMPUTADOR_ADM 2008
16 NUM_COMPUTADOR_ADM 2007 NUM_COMPUTADOR_ADM 2008
tamanho_amostra1 estatistica_f p_valor
tamanho_amostra1 estatistica_f p_valor
40 191233 0.007688 9.073760e-02
40 191233 0.007688 9.073760e-02
48 189299 0.009017 4.824552e-02
48 189299 0.009017 4.824552e-02
24 44225 0.009145 3.072432e-01
24 44225 0.009145 3.072432e-01
32 187765 0.047947 1.264120e-26
32 187765 0.047947 1.264120e-26
16 74158 0.066157 1.129997e-22
16 74158 0.066157 1.129997e-22
%% Cell type:code id:ae5ebf5b-a2b3-4d87-af13-62fc187b3ecc tags:
%% Cell type:code id:ae5ebf5b-a2b3-4d87-af13-62fc187b3ecc tags:
```
python
```
python
anos
=
df
.
ano_coluna1
.
unique
()
anos
=
df
.
ano_coluna1
.
unique
()
threshold
=
1
threshold
=
1
# Itera sobre todos os anos
# Itera sobre todos os anos
for
ano
in
anos
:
for
ano
in
anos
:
# Constroi dataframe do ano
# Constroi dataframe do ano
ano_df
=
df
[
df
.
ano_coluna1
==
ano
]
ano_df
=
df
[
df
.
ano_coluna1
==
ano
]
# Estruturas
# Estruturas
base_columns
=
ano_df
.
coluna1
.
unique
()
# Colunas que ja existiam na base
base_columns
=
ano_df
.
coluna1
.
unique
()
# Colunas que ja existiam na base
new_columns
=
ano_df
.
coluna2
.
unique
()
# Colunas do próximo ano
new_columns
=
ano_df
.
coluna2
.
unique
()
# Colunas do próximo ano
true_new_columns
=
np
.
setdiff1d
(
new_columns
,
base_columns
)
# Colunas que nao existiam na base
true_new_columns
=
np
.
setdiff1d
(
new_columns
,
base_columns
)
# Colunas que nao existiam na base
base_empty_columns
=
np
.
setdiff1d
(
base_columns
,
new_columns
)
# Colunas da base que nao receberam dados
base_empty_columns
=
np
.
setdiff1d
(
base_columns
,
new_columns
)
# Colunas da base que nao receberam dados
all_columns
=
np
.
union1d
(
base_columns
,
new_columns
)
# Todas as colunas possiveis
all_columns
=
np
.
union1d
(
base_columns
,
new_columns
)
# Todas as colunas possiveis
# Alterar para um dicionario
# Alterar para um dicionario
prev_col
=
[]
# Colunas da base para match
prev_col
=
[]
# Colunas da base para match
next_col
=
[]
# Colunas do proximo ano para match
next_col
=
[]
# Colunas do proximo ano para match
# Itera sobre o dataframe
# Itera sobre o dataframe
for
index
,
row
in
ano_df
.
iterrows
():
for
index
,
row
in
ano_df
.
iterrows
():
# Ignora colunas ja selecionadas
# Ignora colunas ja selecionadas
if
row
[
'
coluna1
'
]
in
prev_col
or
row
[
'
coluna2
'
]
in
next_col
:
if
row
[
'
coluna1
'
]
in
prev_col
or
row
[
'
coluna2
'
]
in
next_col
:
continue
continue
# Testa treshold
# Testa treshold
if
row
[
stat_column
]
>
threshold
:
if
row
[
stat_column
]
>
threshold
:
break
break
# Adiciona nas listas
# Adiciona nas listas
prev_col
.
append
(
row
[
'
coluna1
'
])
prev_col
.
append
(
row
[
'
coluna1
'
])
next_col
.
append
(
row
[
'
coluna2
'
])
next_col
.
append
(
row
[
'
coluna2
'
])
all_match_columns
=
np
.
union1d
(
prev_col
,
next_col
)
all_match_columns
=
np
.
union1d
(
prev_col
,
next_col
)
not_match_columns
=
np
.
setdiff1d
(
all_columns
,
all_match_columns
)
not_match_columns
=
np
.
setdiff1d
(
all_columns
,
all_match_columns
)
# Calcula resultados ========================
# Calcula resultados ========================
# Match correto de colunas eh um acerto
# Match correto de colunas eh um acerto
# Encontrar novas colunas eh um acerto
# Encontrar novas colunas eh um acerto
# Colunas da base que nao receberam dados eh um acerto
# Colunas da base que nao receberam dados eh um acerto
# Match incorreto eh um erro
# Match incorreto eh um erro
# Colunas novas que faziam match com a base eh um erro
# Colunas novas que faziam match com a base eh um erro
acertos
=
0
acertos
=
0
acuracia
=
0
acuracia
=
0
# Passeia pelos matches
# Passeia pelos matches
for
i
in
range
(
len
(
prev_col
)):
for
i
in
range
(
len
(
prev_col
)):
if
prev_col
[
i
]
==
next_col
[
i
]:
if
prev_col
[
i
]
==
next_col
[
i
]:
acertos
+=
1
acertos
+=
1
for
col
in
not_match_columns
:
for
col
in
not_match_columns
:
if
col
in
true_new_columns
:
if
col
in
true_new_columns
:
acertos
+=
1
acertos
+=
1
if
col
in
base_empty_columns
:
if
col
in
base_empty_columns
:
acertos
+=
1
acertos
+=
1
if
len
(
all_columns
)
==
0
:
if
len
(
all_columns
)
==
0
:
acuracia
=
0
acuracia
=
0
else
:
else
:
acuracia
=
acertos
/
len
(
all_columns
)
acuracia
=
acertos
/
len
(
all_columns
)
# Gera saida ================================
# Gera saida ================================
print
(
f
'
ANO:
{
ano
}
'
)
print
(
f
'
ANO:
{
ano
}
'
)
# Imprime matches
# Imprime matches
matches
=
[]
matches
=
[]
for
item1
,
item2
in
zip
(
prev_col
,
next_col
):
for
item1
,
item2
in
zip
(
prev_col
,
next_col
):
matches
.
append
([
item1
,
item2
])
matches
.
append
([
item1
,
item2
])
print
(
tabulate
(
matches
,
headers
=
[
'
BASE
'
,
ano
+
1
],
tablefmt
=
'
grid
'
))
print
(
tabulate
(
matches
,
headers
=
[
'
BASE
'
,
ano
+
1
],
tablefmt
=
'
grid
'
))
# Imprime acuracia
# Imprime acuracia
print
(
f
'
ACURACIA:
{
acuracia
}
'
)
print
(
f
'
ACURACIA:
{
acuracia
}
'
)
print
(
'
\n
'
)
print
(
'
\n
'
)
# Imprime colunas da base que nao tiveram match
# Imprime colunas da base que nao tiveram match
for
base_name
in
base_columns
:
for
base_name
in
base_columns
:
if
base_name
not
in
prev_col
:
if
base_name
not
in
prev_col
:
print
(
f
'
COLUNA SEM NOVOS DADOS:
{
base_name
}
'
)
print
(
f
'
COLUNA SEM NOVOS DADOS:
{
base_name
}
'
)
print
(
'
\n
'
)
print
(
'
\n
'
)
# Imprime novas colunas que nao houveram match
# Imprime novas colunas que nao houveram match
for
name
in
new_columns
:
for
name
in
new_columns
:
if
name
not
in
prev_col
and
name
not
in
next_col
:
if
name
not
in
prev_col
and
name
not
in
next_col
:
print
(
f
'
NOVAS COLUNAS:
{
name
}
'
)
print
(
f
'
NOVAS COLUNAS:
{
name
}
'
)
print
(
'
\n
'
)
print
(
'
\n
'
)
```
```
%% Output
%% Output
ANO: 2007
ANO: 2007
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2008 |
| BASE | 2008 |
+======================+======================+
+======================+======================+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADOR |
| NUM_COMPUTADOR | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
ANO: 2008
ANO: 2008
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2009 |
| BASE | 2009 |
+======================+======================+
+======================+======================+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADOR |
| NUM_COMPUTADOR | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
ANO: 2009
ANO: 2009
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2010 |
| BASE | 2010 |
+======================+======================+
+======================+======================+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADOR |
| NUM_COMPUTADOR | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
ANO: 2010
ANO: 2010
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2011 |
| BASE | 2011 |
+======================+======================+
+======================+======================+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADOR |
| NUM_COMPUTADOR | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
ANO: 2011
ANO: 2011
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2012 |
| BASE | 2012 |
+======================+======================+
+======================+======================+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADOR |
| NUM_COMPUTADOR | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
ANO: 2012
ANO: 2012
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2013 |
| BASE | 2013 |
+======================+======================+
+======================+======================+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS_UTILIZADAS | NUM_SALAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 0.6666666666666666
ACURACIA: 0.6666666666666666
COLUNA SEM NOVOS DADOS: NUM_COMPUTADOR
COLUNA SEM NOVOS DADOS: NUM_COMPUTADOR
NOVAS COLUNAS: NUM_COMPUTADOR
NOVAS COLUNAS: NUM_COMPUTADOR
NOVAS COLUNAS: NUM_SOM
NOVAS COLUNAS: NUM_SOM
NOVAS COLUNAS: NUM_TV
NOVAS COLUNAS: NUM_TV
NOVAS COLUNAS: NUM_DVD
NOVAS COLUNAS: NUM_DVD
ANO: 2013
ANO: 2013
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2014 |
| BASE | 2014 |
+======================+======================+
+======================+======================+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADOR |
| NUM_COMPUTADOR | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SOM | NUM_TV |
| NUM_SOM | NUM_TV |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_DVD | NUM_DVD |
| NUM_DVD | NUM_DVD |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_TV | NUM_SOM |
| NUM_TV | NUM_SOM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 0.7777777777777778
ACURACIA: 0.7777777777777778
ANO: 2014
ANO: 2014
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2015 |
| BASE | 2015 |
+======================+======================+
+======================+======================+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADOR | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SOM | NUM_TV |
| NUM_SOM | NUM_TV |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_DVD | NUM_DVD |
| NUM_DVD | NUM_DVD |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADOR |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_TV | NUM_SOM |
| NUM_TV | NUM_SOM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 0.5555555555555556
ACURACIA: 0.5555555555555556
ANO: 2015
ANO: 2015
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2016 |
| BASE | 2016 |
+======================+======================+
+======================+======================+
| NUM_SOM | NUM_SOM |
| NUM_SOM | NUM_SOM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_DVD | NUM_DVD |
| NUM_DVD | NUM_DVD |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_TV | NUM_TV |
| NUM_TV | NUM_TV |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADOR |
| NUM_COMPUTADOR | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
| NUM_COMPUTADOR_ADM | NUM_COMPUTADOR_ADM |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
ANO: 2016
ANO: 2016
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2017 |
| BASE | 2017 |
+======================+======================+
+======================+======================+
| NUM_TV | NUM_TV |
| NUM_TV | NUM_TV |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SOM | NUM_SOM |
| NUM_SOM | NUM_SOM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADOR | NUM_COMPUTADOR |
| NUM_COMPUTADOR | NUM_COMPUTADOR |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
| NUM_COMPUTADPR_ALUNO | NUM_COMPUTADPR_ALUNO |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_DVD | NUM_DVD |
| NUM_DVD | NUM_DVD |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 0.8888888888888888
ACURACIA: 0.8888888888888888
COLUNA SEM NOVOS DADOS: NUM_COMPUTADOR_ADM
COLUNA SEM NOVOS DADOS: NUM_COMPUTADOR_ADM
NOVAS COLUNAS: NUM_COMPUTADOR_ADM
NOVAS COLUNAS: NUM_COMPUTADOR_ADM
ANO: 2017
ANO: 2017
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2018 |
| BASE | 2018 |
+======================+======================+
+======================+======================+
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
| NUM_FUNCIONARIOS | NUM_FUNCIONARIOS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS | NUM_SALAS |
| NUM_SALAS | NUM_SALAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
COLUNA SEM NOVOS DADOS: NUM_COMPUTADOR
COLUNA SEM NOVOS DADOS: NUM_COMPUTADOR
COLUNA SEM NOVOS DADOS: NUM_SOM
COLUNA SEM NOVOS DADOS: NUM_SOM
COLUNA SEM NOVOS DADOS: NUM_COMPUTADOR_ADM
COLUNA SEM NOVOS DADOS: NUM_COMPUTADOR_ADM
COLUNA SEM NOVOS DADOS: NUM_TV
COLUNA SEM NOVOS DADOS: NUM_TV
COLUNA SEM NOVOS DADOS: NUM_COMPUTADPR_ALUNO
COLUNA SEM NOVOS DADOS: NUM_COMPUTADPR_ALUNO
COLUNA SEM NOVOS DADOS: NUM_DVD
COLUNA SEM NOVOS DADOS: NUM_DVD
ANO: 2018
ANO: 2018
+-----------+----------------------+
+-----------+----------------------+
| BASE | 2019 |
| BASE | 2019 |
+===========+======================+
+===========+======================+
| NUM_SALAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS | NUM_SALAS_UTILIZADAS |
+-----------+----------------------+
+-----------+----------------------+
ACURACIA: 0.6666666666666666
ACURACIA: 0.6666666666666666
COLUNA SEM NOVOS DADOS: NUM_SALAS_UTILIZADAS
COLUNA SEM NOVOS DADOS: NUM_SALAS_UTILIZADAS
COLUNA SEM NOVOS DADOS: NUM_FUNCIONARIOS
COLUNA SEM NOVOS DADOS: NUM_FUNCIONARIOS
NOVAS COLUNAS: NUM_SOM
NOVAS COLUNAS: NUM_SOM
NOVAS COLUNAS: NUM_TV
NOVAS COLUNAS: NUM_TV
NOVAS COLUNAS: NUM_DVD
NOVAS COLUNAS: NUM_DVD
ANO: 2019
ANO: 2019
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2020 |
| BASE | 2020 |
+======================+======================+
+======================+======================+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SOM | NUM_SOM |
| NUM_SOM | NUM_SOM |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_TV | NUM_TV |
| NUM_TV | NUM_TV |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_DVD | NUM_DVD |
| NUM_DVD | NUM_DVD |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
ANO: 2020
ANO: 2020
+----------------------+----------------------+
+----------------------+----------------------+
| BASE | 2021 |
| BASE | 2021 |
+======================+======================+
+======================+======================+
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
| NUM_SALAS_UTILIZADAS | NUM_SALAS_UTILIZADAS |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_DVD | NUM_DVD |
| NUM_DVD | NUM_DVD |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_TV | NUM_TV |
| NUM_TV | NUM_TV |
+----------------------+----------------------+
+----------------------+----------------------+
| NUM_SOM | NUM_SOM |
| NUM_SOM | NUM_SOM |
+----------------------+----------------------+
+----------------------+----------------------+
ACURACIA: 1.0
ACURACIA: 1.0
%% Cell type:code id:81aa6d2b-582d-4982-ae36-35eb7ea3a004 tags:
```
python
anos
=
df
.
ano_coluna1
.
unique
()
threshold
=
0.2
# Itera sobre todos os anos
for
ano
in
anos
:
# Constroi dataframe do ano
ano_df
=
df
[(
df
.
ano_coluna1
==
ano
)
&
(
df
.
estatistica_f
<
threshold
)]
# Estruturas
base_columns
=
ano_df
.
coluna1
.
unique
()
# Colunas que ja existiam na base
new_columns
=
ano_df
.
coluna2
.
unique
()
# Colunas do próximo ano
true_new_columns
=
np
.
setdiff1d
(
new_columns
,
base_columns
)
# Colunas que nao existiam na base
base_empty_columns
=
np
.
setdiff1d
(
base_columns
,
new_columns
)
# Colunas da base que nao receberam dados
all_columns
=
np
.
union1d
(
base_columns
,
new_columns
)
# Todas as colunas possiveis
resultados
=
[]
# Resultados dos matches
# Alterar para um dicionario
prev_col
=
[]
# Colunas da base para match
next_col
=
[]
# Colunas do proximo ano para match
# Itera sobre o dataframe
for
col
in
base_columns
:
top3
=
ano_df
[
ano_df
.
coluna1
==
col
]
resultados
.
append
(
top3
.
iloc
[:
3
,:].
values
)
# Encontra colunas prev que deram match
all_match_columns
=
[]
not_match_columns
=
[]
for
res
in
resultados
:
for
i
in
res
:
next_col
=
np
.
union1d
(
next_col
,
i
[
2
])
prev_col
=
np
.
union1d
(
prev_col
,
i
[
0
])
all_match_columns
=
np
.
union1d
(
next_col
,
prev_col
)
not_match_columns
=
np
.
setdiff1d
(
all_columns
,
all_match_columns
)
found_new_columns
=
np
.
setdiff1d
(
new_columns
,
next_columns
)
# Calcula acurácia
acuracia
=
0
acertos
=
0
for
res
in
resultados
:
for
i
in
res
:
if
i
[
0
]
==
i
[
2
]:
acertos
+=
1
break
acuracia
=
acertos
/
len
(
base_columns
)
# Imprime resultados
print
(
ano
)
for
res
in
resultados
:
print
(
f
'
{
res
[
0
][
0
]
}
:
'
)
for
i
in
res
:
print
(
f
'
{
i
[
2
]
}
'
)
print
(
f
'
NOVAS COLUNAS:
{
found_new_columns
}
'
)
# print(f'{acuracia}\n')
```
%% Output
2007
NUM_SALAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_COMPUTADOR_ADM:
NUM_COMPUTADOR_ADM
NUM_COMPUTADOR:
NUM_COMPUTADOR
NOVAS COLUNAS: []
2008
NUM_SALAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_COMPUTADOR:
NUM_COMPUTADOR
NOVAS COLUNAS: []
2009
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_SALAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_COMPUTADOR_ADM:
NUM_COMPUTADOR_ADM
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_COMPUTADOR:
NUM_COMPUTADOR
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NOVAS COLUNAS: []
2010
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_SALAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_COMPUTADOR_ADM:
NUM_COMPUTADOR_ADM
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NUM_COMPUTADOR:
NUM_COMPUTADOR
NOVAS COLUNAS: []
2011
NUM_SALAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_COMPUTADOR:
NUM_COMPUTADOR
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NUM_COMPUTADOR_ADM:
NUM_COMPUTADOR_ADM
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NOVAS COLUNAS: []
2012
NUM_COMPUTADOR_ADM:
NUM_COMPUTADOR_ADM
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_SALAS_UTILIZADAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_SALAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NOVAS COLUNAS: []
2013
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_SALAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_COMPUTADOR:
NUM_COMPUTADOR
NUM_SOM:
NUM_TV
NUM_SOM
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NUM_DVD:
NUM_DVD
NUM_TV:
NUM_TV
NUM_SOM
NOVAS COLUNAS: ['NUM_DVD' 'NUM_SOM' 'NUM_TV']
2014
NUM_SALAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_COMPUTADOR:
NUM_COMPUTADPR_ALUNO
NUM_SOM:
NUM_TV
NOVAS COLUNAS: ['NUM_TV']
2015
NUM_SOM:
NUM_SOM
NUM_SALAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_DVD:
NUM_DVD
NUM_SALAS_UTILIZADAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_TV:
NUM_TV
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NUM_COMPUTADOR:
NUM_COMPUTADOR
NOVAS COLUNAS: ['NUM_DVD' 'NUM_SOM' 'NUM_TV']
2016
NUM_TV:
NUM_TV
NUM_SOM:
NUM_SOM
NUM_COMPUTADOR_ADM
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_SALAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NUM_COMPUTADOR:
NUM_COMPUTADOR
NUM_COMPUTADPR_ALUNO:
NUM_COMPUTADPR_ALUNO
NOVAS COLUNAS: ['NUM_SOM' 'NUM_TV']
2017
NUM_FUNCIONARIOS:
NUM_FUNCIONARIOS
NUM_SALAS:
NUM_SALAS
NUM_SALAS_UTILIZADAS
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS
NOVAS COLUNAS: []
2018
NUM_SALAS:
NUM_SALAS_UTILIZADAS
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NOVAS COLUNAS: []
2019
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_SOM:
NUM_SOM
NUM_TV:
NUM_TV
NUM_DVD:
NUM_DVD
NOVAS COLUNAS: ['NUM_DVD' 'NUM_SOM' 'NUM_TV']
2020
NUM_SALAS_UTILIZADAS:
NUM_SALAS_UTILIZADAS
NUM_DVD:
NUM_DVD
NUM_TV:
NUM_TV
NUM_SOM:
NUM_SOM
NOVAS COLUNAS: ['NUM_DVD' 'NUM_SOM' 'NUM_TV']
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment