Como posso ler em um arquivo .csv (sem cabeçalhos) e quando quero apenas um subconjunto de colunas (digamos 4 e 7 de um total de 20 colunas) usando pandas? Eu não consigo ser capaz de fazerusecols
Como posso ler em um arquivo .csv (sem cabeçalhos) e quando quero apenas um subconjunto de colunas (digamos 4 e 7 de um total de 20 colunas) usando pandas? Eu não consigo ser capaz de fazerusecols
Respostas:
Para ler um csv em que não tenha um cabeçalho e apenas para determinadas colunas, você precisa passar parâmetros header=Nonee usecols=[3,6]para a quarta e a sétima colunas:
df = pd.read_csv(file_path, header=None, usecols=[3,6])
Veja os documentos
As respostas anteriores foram boas e corretas, mas, na minha opinião, um namesparâmetro extra o tornará perfeito e deve ser o caminho recomendado, especialmente quando o csv não possui headers.
usecolse namesparâmetrosdf = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
ou use header=Nonepara informar explicitamente às pessoas que csvelas não têm cabeçalhos (de qualquer forma, as duas linhas são idênticas )
df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)
Para que você possa recuperar seus dados,
# with `names` parameter
df['colA']
df['colB']
ao invés de
# without `names` parameter
df[0]
df[1]
Com base em read_csv , quando namessão passados explicitamente, headereles se comportam como em Nonevez de 0, para que você possa pular header=Nonequando namesexistir.