Comment puis-je lire dans un fichier .csv (sans en-têtes) et quand je veux seulement un sous-ensemble des colonnes (disons 4e et 7e sur un total de 20 colonnes), en utilisant des pandas? Je n'arrive pas à faireusecols
Comment puis-je lire dans un fichier .csv (sans en-têtes) et quand je veux seulement un sous-ensemble des colonnes (disons 4e et 7e sur un total de 20 colonnes), en utilisant des pandas? Je n'arrive pas à faireusecols
Réponses:
Les réponses précédentes étaient bonnes et correctes, mais à mon avis, un namesparamètre supplémentaire le rendra parfait, et ce devrait être la manière recommandée, surtout lorsque le csv n'a pas headers.
usecolset namesparamètresdf = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
ou utilisez header=Nonepour dire explicitement aux gens qu'il csvn'a pas d'en-tête (de toute façon les deux lignes sont identiques )
df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)
Pour que vous puissiez récupérer vos données en
# with `names` parameter
df['colA']
df['colB']
au lieu de
# without `names` parameter
df[0]
df[1]
Basé sur read_csv , quand ils namessont passés explicitement, alors headerse comportera comme Noneau lieu de 0, donc on peut sauter header=Nonequand il namesexiste.