<jupyter_start><jupyter_text>Formas de Criar uma lista  Usando espaço e a função split<jupyter_code>data = ['1 2 3 4'.split(),
       '5 6 7 8 '.split(),
       '9 10 11 12'.split(),
       '13 14 15 16'.split()]
data<jupyter_output><empty_output><jupyter_text>Passando int para cada elemento  Com a função map<jupyter_code># map usa os parâmetros (function sem parênteses, variável)
for i, l in enumerate(data):
    data[i] = list(map(int, l))
data<jupyter_output><empty_output><jupyter_text>Com for e range<jupyter_code>for l in range(len(data)):
    for i in range(len(data[l])):
        data[l][i] = int(data[l][i])
data<jupyter_output><empty_output><jupyter_text>Com for e enumerate<jupyter_code>for i, l in enumerate(data):
    for p, n in enumerate(data[i]):
        data[i][p] = int(n)
data<jupyter_output><empty_output><jupyter_text>Criando um Dataframe com split* para criar o index e as columns pode-se passar uma str e a função split* o split usa por padrão o espaço vazio como separador* se for usado outro separador, deve ser passado como parâmetro<jupyter_code>data = [(1, 2, 3, 4),
       (5, 6, 7, 8),
       (9, 10, 11, 12),
       (13, 14, 15, 16)]
df = pd.DataFrame(data, 'l1 l2 l3 l4'.split(), 'c1 c2 c3 c4'.split())
df<jupyter_output><empty_output><jupyter_text>Tipos de Seleção  Selecionar coluna* em outras palavras, selecionando uma series<jupyter_code>df['c1']
type(df['c1'])<jupyter_output><empty_output><jupyter_text>Mais de uma coluna<jupyter_code>df[['c3', 'c1']]
# as colunas são apresentadas na ordem que foi passada
type(df[['c3', 'c1']])<jupyter_output><empty_output><jupyter_text>Seleção por linha<jupyter_code># a seleção por linha obedece ao padrão de fatiamento de string
# não se usa o index sozinho, usa-se os ':'
# e mais ':' se for usar o passo além do intervalo
# ex => [::2] => seleciona tudo dando 2 passos
df[:]<jupyter_output><empty_output><jupyter_text>Seleção de linhas e colunas<jupyter_code># selecionar a partir da linha de index 1
# e ainda, as colunas c3 e c1, nessa ordem
df[1:][['c3', 'c1']]<jupyter_output><empty_output><jupyter_text>Selecionando linhas com o loc* o loc permite selecionar linhas usando o label da linha<jupyter_code>df
# pega uma linha e transforma numa series
df.loc['l1']
# obedece o mesmo formato para selecionar mais de uma linha
df.loc[['l3', 'l2']]
# para selecionar um elemento, usa-se a conotação matricial
df.loc['l3', 'c1']<jupyter_output><empty_output><jupyter_text>Selecionando com iloc* o iloc tem a mesma função do loc, mas usa o index da linha, não o label<jupyter_code># selecionando o mesmo elemento com o iloc
df.iloc[2, 0]<jupyter_output><empty_output><jupyter_text>Selecionando várias linhas e colunas com loc e iloc<jupyter_code>df
# usando o loc
df.loc[['l3', 'l1'], ['c4', 'c1']]
# usando o iloc
df.iloc[[2, 0], [3, 0]]<jupyter_output><empty_output><jupyter_text>Exercícios  Crie um DataFrame somente com os alunos reprovados e mantenha neste DataFrame apenas as colunas Nome, Sexo e Idade, nesta ordem.<jupyter_code>alunos = pd.DataFrame({'Nome': ['Ary', 'Cátia', 'Denis', 'Beto', 'Bruna', 'Dara', 'Carlos', 'Alice'], 
                        'Sexo': ['M', 'F', 'M', 'M', 'F', 'F', 'M', 'F'], 
                        'Idade': [15, 27, 56, 32, 42, 21, 19, 35], 
                        'Notas': [7.5, 2.5, 5.0, 10, 8.2, 7, 6, 5.6], 
                        'Aprovado': [True, False, False, True, True, True, False, False]}, 
                        columns = ['Nome', 'Idade', 'Sexo', 'Notas', 'Aprovado'])
alunos<jupyter_output><empty_output><jupyter_text>Resposta do exercício<jupyter_code>selecao = alunos['Aprovado'] == False
reprovados = alunos[['Nome', 'Sexo', 'Idade']][selecao]
reprovados<jupyter_output><empty_output><jupyter_text>Resposta organizando por sexo, colocando em ordem alfabética e refazendo o index<jupyter_code>reprovados = alunos['Aprovado'] == False
# cria uma variável em que a coluna Aprovado tem valor False
alunos_reprovados = alunos[reprovados]
# cria um Dataframe apenas com Aprovado == False
alunos_reprovados = alunos_reprovados[['Nome', 'Sexo', 'Idade']].sort_values(by=['Sexo', 'Nome'])
# sobrescreve o Dataframe apenas com as colunas desejadas e com o filtro criado
alunos_reprovados.index = range(alunos_reprovados.shape[0])
# refaz o index com o range do tamanho do nº de linhas desse Dataframe
alunos_reprovados<jupyter_output><empty_output><jupyter_text>Crie uma visualização com os três alunos mais novos<jupyter_code>alunos
alunos.sort_values(by='Idade', inplace=True)
alunos.iloc[:3]<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13347969264544457, 'fraction_numerical': 0.025246981339187707, 'mean_word_length': 5.050464807436919, 'pattern_counts': {'":': 0, '<': 65, '<?xml version=': 0, '>': 67, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '16', 'dir': 'jupyter-structured-clean-dedup', 'id': '7034', 'license': 'MIT', 'n_tokens_mistral': 1911, 'n_tokens_neox': 1812, 'n_words': 491, 'path': '02_fundamentos_pandas/notebook/11_formas_de_selecao.ipynb', 'repo_name': 'eltonrp/formacao_Data_Science', 'size': '4555'}