Amacım bu betikle: 1.gönderim dosyası, excel dosyasından (> 100,000k satır) ve üstbilgilerde (Etiketler, Birimler) 2.convert excel numeric pandas dataFrame için en iyi datetime nesnesine tarihler 3.Bir satırlara ve seri etiketlere referans vermek için zaman damgaları kullanılabilir sütunlara başvuru yapabilirVeriyi Excel'den Panda'ya aktarıyor VeriFrame
Şimdiye kadar excel verilerini bir listeye okumak için xlrd'yi kullandım. Her liste ile pandalar serisi yapılmış ve indeks olarak kullanılan zaman listesi kullanılmıştır. Python sözlüğü yapmak için dizi başlıklarıyla birleştirilmiş seri. Panda DataFrame için sözlük geçti. Çabalarıma rağmen df.index sütun başlıklarına ayarlanmış gibi görünüyor ve tarihleri datetime nesnesine ne zaman dönüştüreceğimi bilmiyorum.
3 gün önce python kullanmaya başladım, böylece herhangi bir tavsiye harika olurdu! İşte benim kod:
#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)
pd.read_excel'i denediniz mi? (http://pandas.pydata.org/pandas-docs/dev/io.html) – user1827356
Yorumunuz için teşekkürler! Bir çekim yapacağım ama eğer pd.read_csv gibi bir şey varsa bunun gibi bir kod kullanmam gerekecek çünkü pd.read_csv sadece bir satır sütun başlığı ve veriden önce bir boşluk yoksa düzgün çalışıyor gibi görünüyor. – pbreach
İkinci satırı "atla" seçenekleri ile atlayabilirsiniz. IMO, pd.read_csv (özellikle skiprows, skipinitialspace, parse_dates) seçeneklerine bakmak için kesinlikle faydalıdır. – user1827356