<jupyter_start><jupyter_text>Relatório V  Tratamento de dados faltantes<jupyter_code>import pandas as pd
dados = pd.read_csv("aluguel_resid.csv", sep=';')
dados
dados.isnull()
dados.notnull()
dados.info()
dados[dados['Valor'].isnull()]
a = dados.shape[0]
dados.dropna(subset = ['Valor'], inplace = True)
b = dados.shape[0]
a - b<jupyter_output><empty_output><jupyter_text>Continuação - IPTU e Condomínio<jupyter_code>dados[dados['Condominio'].isnull()].shape[0] #OK
selecao = (dados['Tipo'] == 'Apartamento') & (dados['Condominio'].isnull())
selecao
A = dados.shape[0]
dados = dados[~selecao]
B = dados.shape[0]
A - B<jupyter_output><empty_output><jupyter_text>Mas o DF que está acima são os dados que eu não quero. Poderia substituir *isnull()* por *notnull()*  Outra forma é usando o ~ [negação]<jupyter_code>dados2 = dados[~selecao]

dados2.info()

dados.shape[0] - dados2.shape[0]
# dados.fillna(0, inplace=True)<jupyter_output><empty_output><jupyter_text>Além do .fillna(), eu posso completar os valores nulos desta maneira:<jupyter_code>dados = dados.fillna({'Condominio': 0, 'IPTU': 0}) #Posso colocar valores diferentes para variáveis diferentes
dados.info()
dados.to_csv('aluguel_refinado.csv', sep=';', index=False)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15776892430278885, 'fraction_numerical': 0.010358565737051793, 'mean_word_length': 7.429530201342282, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '634912', 'license': 'MIT', 'n_tokens_mistral': 542, 'n_tokens_neox': 531, 'n_words': 98, 'path': 'DS_02_Python_Pandas_Tratando_e_Analisando_Dados/Aula6_Tratando_dados_faltantes.ipynb', 'repo_name': 'rafaelborto/DataScience', 'size': '1255'}