L'organisation de lecture de données à partir d'Excel dans les Pandas DataFrame

Mon but de ce script est de:
1.lire timseries de données à partir de fichier excel (>100 000 de k lignes) ainsi que des en-têtes (Étiquettes, les Unités)
2.convertir excel numérique des dates pour les meilleurs objet datetime pour les pandas dataFrame
3.Être en mesure d'utiliser les horodatages de référence des lignes et des étiquettes en série de colonnes de référence

Jusqu'à présent j'ai utilisé xlrd de lire les données excel dans une liste. Fait pandas Série avec chaque liste et utilisé la liste des temps comme index. Série combinée avec les en-têtes de série pour faire de python dictionnaire. Passé dictionnaire de pandas DataFrame. En dépit de mes efforts, la df.l'indice semble être pour les en-têtes de colonne et je ne suis pas sûr de quand convertir les dates en objet datetime.

J'ai juste commencé à l'aide de python 3 jours il y a donc tout conseil serait formidable! Voici mon code:

    #Open excel workbook and first sheet
wb = xlrd.open_workbook("C:\GreenCSV\Calgary\CWater.xlsx")
sh = wb.sheet_by_index(0)
#Read rows containing labels and units
Labels = sh.row_values(1, start_colx=0, end_colx=None)
Units = sh.row_values(2, start_colx=0, end_colx=None)
#Initialize list to hold data
Data = [None] * (sh.ncols)
#read column by column and store in list
for colnum in range(sh.ncols):
Data[colnum] = sh.col_values(colnum, start_rowx=5, end_rowx=None)
#Delete unecessary rows and columns
del Labels[3],Labels[0:2], Units[3], Units[0:2], Data[3], Data[0:2]   
#Create Pandas Series
s = [None] * (sh.ncols - 4)
for colnum in range(sh.ncols - 4):
s[colnum] = Series(Data[colnum+1], index=Data[0])
#Create Dictionary of Series
dictionary = {}
for i in range(sh.ncols-4):
dictionary[i]= {Labels[i] : s[i]}
#Pass Dictionary to Pandas DataFrame
df = pd.DataFrame.from_dict(dictionary)
Avez-vous essayez de pd.read_excel? (pandas.pydata.org/pandas-docs/dev/io.html)
Merci pour votre commentaire! Je vais donner un coup de feu, mais si c'est quelque chose comme la maladie de parkinson.read_csv je vais devoir utiliser un code comme celui-ci parce que pd.read_csv ne semble fonctionner correctement si il y a une seule ligne d'en-têtes de colonne et pas d'espace avant les données.
Vous pouvez sauter sur la deuxième ligne avec les options 'skiprows'. IMO c'est certainement la peine de regarder les options pour les pd.read_csv (surtout skiprows, skipinitialspace, parse_dates)

OriginalL'auteur pbreach | 2013-07-17