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
Les réponses précédentes étaient bonnes et correctes, mais à mon avis, un names
paramètre supplémentaire le rendra parfait, et ce devrait être la manière recommandée, surtout lorsque le csv n'a pas headers
.
usecols
et names
paramètresdf = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
ou utilisez header=None
pour dire explicitement aux gens qu'il csv
n'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 names
sont passés explicitement, alors header
se comportera comme None
au lieu de 0
, donc on peut sauter header=None
quand il names
existe.
Assurez-vous de spécifier passer header=None
et ajouter usecols=[3,6]
pour les 4e et 7e colonnes.