web-dev-qa-db-fra.com

comment lire certaines colonnes d'Excel en utilisant Pandas - Python

Je lis depuis une feuille Excel et je veux lire certaines colonnes: la colonne 0 car c'est l'index des lignes, et les colonnes 22:37. Maintenant, voici ce que je fais:

import pandas as pd
import numpy as np
file_loc = "path.xlsx"
df = pd.read_Excel(file_loc, index_col=None, na_values=['NA'], parse_cols = 37)
df= pd.concat([df[df.columns[0]], df[df.columns[22:]]], axis=1)

Mais j'espère qu'il y a une meilleure façon de le faire! Je sais que si je le fais parse_cols=[0, 22,..,37] Je peux le faire, mais pour les grands ensembles de données, cela n'a pas de sens.

J'ai aussi fait ça:

s = pd.Series(0)
s[1]=22
for i in range(2,14):
    s[i]=s[i-1]+1
df = pd.read_Excel(file_loc, index_col=None, na_values=['NA'], parse_cols = s)

Mais il lit les 15 premières colonnes, ce qui correspond à la longueur de s.

19
Ana

Vous pouvez utiliser des index de colonne (lettres) comme ceci:

import pandas as pd
import numpy as np
file_loc = "path.xlsx"
df = pd.read_Excel(file_loc, index_col=None, na_values=['NA'], usecols = "A,C:AA")
print(df)

Documentation correspondante :

parse_cols : int ou list, par défaut Aucun

  • Si aucun analyse alors toutes les colonnes,
  • Si int indique alors la dernière colonne à analyser
  • Si la liste des entrées indique la liste des numéros de colonne à analyser
  • Si la chaîne indique une liste de noms et de plages de colonnes séparés par des virgules (par exemple, "A: E" ou "A, C, E: F")
23
Martin Vseticka

parse_cols est obsolète, utilisez plutôt usecols

c'est:

df = pd.read_Excel(file_loc, index_col=None, na_values=['NA'], usecols = "A,C:AA")
14
Leoli