이 스크립트의 목표는 다음과 같습니다. 1. excel 파일 (> 100,000k 행) 및 헤더 (라벨, 단위)의 1.read timseries 데이터 입력 2.convert excel numeric 판다에 가장 가까운 날짜 시간 객체에 대한 날짜 dataFrame 3. 타임 스탬프를 사용하여 참조 열로 행과 시리즈 레이블을 참조 할 수 있습니까?Excel에서 Pandas DataFrame으로 데이터를 구성하는 과정
지금까지 xlrd를 사용하여 Excel 데이터를 목록으로 읽었습니다. 각 목록과 사용 된 시간 목록을 색인으로 사용하여 팬더 시리즈를 만들었습니다. 직렬 헤더와 함께 파이썬 사전을 만드는 시리즈. pandas DataFrame에 사전을 전달했습니다. 그럼에도 불구하고 df.index는 열 머리글로 설정되어있는 것으로 보이며 날짜를 datetime 객체로 변환 할 시점이 확실치 않습니다.
난 단지 3 일 전부터 파이썬을 사용하기 시작 했으므로 어떤 조언이 좋을 것입니다! 여기에 내 코드입니다 :
#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을 시도 했습니까? (http://pandas.pydata.org/pandas-docs/dev/io.html) – user1827356
의견을 보내 주셔서 감사합니다! 나는 그것을 줄 것이다. 그러나 만약 pd.read_csv와 같은 것이라면, pd.read_csv는 단지 한 줄의 열 헤더가 있고 데이터 앞에 공백이 없다면 제대로 작동하는 것처럼 보이기 때문에 이와 같은 코드를 사용해야 할 것이다. – pbreach
'skiprows'옵션을 사용하여 두 번째 행을 건너 뛸 수 있습니다. IMO 그것은 확실히 pd.read_csv (특히 skiprows, skipinitialspace, parse_dates) 옵션을 살펴볼 가치가 있습니다. – user1827356