Mục tiêu của tôi với tập lệnh này là: 1.Xem dữ liệu timseries từ tệp excel (> 100.000 nghìn hàng) cũng như tiêu đề (Nhãn, Đơn vị) 2.convert excel numeric ngày để đối tượng datetime tốt nhất cho gấu trúc dataFrame 3.Be có thể sử dụng dấu thời gian để tham chiếu các hàng và nhãn chuỗi để tham chiếu cộtSắp xếp dữ liệu đọc từ Excel sang Pandas DataFrame
Cho đến nay tôi đã sử dụng xlrd để đọc dữ liệu excel vào danh sách. Made pandas Series với mỗi danh sách và danh sách thời gian được sử dụng làm chỉ mục. Loạt kết hợp với tiêu đề chuỗi để tạo từ điển python. Chuyển từ điển sang gấu trúc DataFrame. Mặc dù những nỗ lực của tôi df.index dường như được thiết lập để các tiêu đề cột và tôi không chắc chắn khi nào để chuyển đổi ngày thành đối tượng datetime.
Tôi mới bắt đầu sử dụng python 3 ngày trước để mọi lời khuyên sẽ tuyệt vời! Dưới đây là mã của tôi:
#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)
Bạn đã thử pd.read_excel chưa? (http://pandas.pydata.org/pandas-docs/dev/io.html) – user1827356
Cảm ơn bạn đã bình luận! Tôi sẽ cung cấp cho nó một shot nhưng nếu nó là bất cứ điều gì như pd.read_csv tôi sẽ cần phải sử dụng một mã như thế này bởi vì pd.read_csv chỉ có vẻ hoạt động đúng nếu chỉ có một dòng tiêu đề cột và không có khoảng trống trước khi dữ liệu. – pbreach
Bạn có thể bỏ qua hàng thứ hai với các tùy chọn 'bỏ qua'. IMO nó chắc chắn đáng giá để xem xét các tùy chọn cho pd.read_csv (đặc biệt là skiprows, skipinitialspace, parse_dates) – user1827356