Hoe kan ik een .csv bestand inlezen (zonder headers) en wanneer ik alleen een subset van de kolommen wil (zeg 4e en 7e van een totaal van 20 kolommen), met behulp van pandas? Het lukt me niet om usecols
te doen
Om een csv in te lezen die geen header heeft en voor slechts bepaalde kolommen moet je de params header=None
en usecols=[3,6]
doorgeven voor de 4e en 7e kolom:
df = pd.read_csv(file_path, header=None, usecols=[3,6])
Zie de docs
Eerdere antwoorden waren goed en correct, maar naar mijn mening zal een extra namen
parameter het perfect maken, en het zou de aanbevolen manier moeten zijn, vooral als het csv geen headers
heeft.
usecols
en names
parametersdf = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
of gebruik header=None
om expliciet te vertellen dat de csv
geen headers heeft (hoe dan ook zijn beide regels identiek)
df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)
Zodat u uw gegevens kunt opvragen door
# with `names` parameter
df['colA']
df['colB']
in plaats van
# without `names` parameter
df[0]
df[1]
Gebaseerd op read_csv, als namen
expliciet worden doorgegeven, dan zal header
zich gedragen als None
in plaats van 0
, dus men kan header=None
overslaan als namen
bestaat.