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
Para ler um csv em que não tenha um cabeçalho e apenas para determinadas colunas, você precisa passar parâmetros header=None
e 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 names
parâmetro extra o tornará perfeito e deve ser o caminho recomendado, especialmente quando o csv não possui headers
.
usecols
e names
parâmetrosdf = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
ou use header=None
para informar explicitamente às pessoas que csv
elas 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 names
são passados explicitamente, header
eles se comportam como em None
vez de 0
, para que você possa pular header=None
quando names
existir.
Certifique-se de especificar passe header=None
e adicionar usecols=[3,6]
para a quarta e a sétima colunas.