Panda를 사용하여 여러 헤더가 포함된 엑셀 시트 읽기
다음과 같은 헤더가 여러 개 있는 엑셀 시트를 가지고 있습니다.
_________________________________________________________________________
____|_____| Header1 | Header2 | Header3 |
ColX|ColY |ColA|ColB|ColC|ColD||ColD|ColE|ColF|ColG||ColH|ColI|ColJ|ColDK|
1 | ds | 5 | 6 |9 |10 | .......................................
2 | dh | ..........................................................
3 | ge | ..........................................................
4 | ew | ..........................................................
5 | er | ..........................................................
여기서 처음 두 열에는 헤더가 없지만 다른 열에는 Header1, Header2, Header3 등의 헤더가 있음을 알 수 있습니다.그래서 저는 이 시트를 읽고 비슷한 구조의 다른 시트와 병합하고 싶습니다.
첫 번째 열 'ColX'에 병합하고 싶습니다.지금은 이렇게 하고 있습니다.
import pandas as pd
totalMergedSheet = pd.DataFrame([1,2,3,4,5], columns=['ColX'])
file = pd.ExcelFile('ExcelFile.xlsx')
for i in range (1, len(file.sheet_names)):
df1 = file.parse(file.sheet_names[i-1])
df2 = file.parse(file.sheet_names[i])
newMergedSheet = pd.merge(df1, df2, on='ColX')
totalMergedSheet = pd.merge(totalMergedSheet, newMergedSheet, on='ColX')
하지만 어느 칼럼도 제대로 읽지는 못하며 원하는 방식으로 결과를 돌려주지 못할 것 같습니다.따라서 결과 프레임은 다음과 같아야 합니다.
________________________________________________________________________________________________________
____|_____| Header1 | Header2 | Header3 | Header4 | Header5 |
ColX|ColY |ColA|ColB|ColC|ColD||ColD|ColE|ColF|ColG||ColH|ColI|ColJ|ColK| ColL|ColM|ColN|ColO||ColP|ColQ|ColR|ColS|
1 | ds | 5 | 6 |9 |10 | ..................................................................................
2 | dh | ...................................................................................
3 | ge | ....................................................................................
4 | ew | ...................................................................................
5 | er | ......................................................................................
[갱신 및 수정 내용은 댓글 참조]
Panda는 이미 Excel 스프레드시트 전체를 읽을 수 있는 기능을 가지고 있기 때문에 각 시트를 수동으로 해석/머지할 필요가 없습니다.panda.read_excel()을 보세요.Excel 파일을 한 줄로 읽을 수 있을 뿐만 아니라 문제 해결에 도움이 되는 옵션도 제공합니다.
서브컬럼이 있기 때문에 MultiIndexing을 찾습니다.기본적으로, 판다들은 맨 위 행에서 유일한 머리글 행으로 읽힌다.합격할 수 있습니다.header
의론하여 하게 하다.pandas.read_excel()
헤더로 사용되는 행의 수를 나타냅니다.당신 같은 경우에는,header=[0, 1]
첫 번째 두 행을 나타냅니다.여러 장의 시트를 가지고 있을 수도 있기 때문에 합격할 수 있습니다.sheetname=None
(이것은 모든 시트를 검토하도록 지시합니다).명령어는 다음과 같습니다.
df_dict = pandas.read_excel('ExcelFile.xlsx', header=[0, 1], sheetname=None)
키가 시트 이름이고 값이 각 시트의 데이터 프레임인 사전이 반환됩니다.모든 것을 하나의 DataFrame으로 정리하고 싶다면 Panda를 사용하면 됩니다.concat:
df = pandas.concat(df_dict.values(), axis=0)
인덱스가 MultiIndex인 경우도 있습니다(OP에서는 실제로 해당).그것을 설명하려면 ,index_col=
적당하게.
df_dict = pd.read_excel('Book1.xlsx', header=[0,1], index_col=[0,1], sheetname=None)
언급URL : https://stackoverflow.com/questions/40554106/read-excel-sheet-with-multiple-header-using-pandas
'bestsource' 카테고리의 다른 글
코드에서의 WPF 이미지 소스 설정 (0) | 2023.04.14 |
---|---|
Groovy Shell 경고 "prefs 루트 노드를 열거나 만들 수 없습니다..." (0) | 2023.04.14 |
유전확장 변수를 피하는 방법은? (0) | 2023.04.14 |
WPF ScrollViewer에서 스크롤을 터치 활성화 하는 방법이 있습니까? (0) | 2023.04.14 |
Windows에 pip을 설치하는 방법 (0) | 2023.04.14 |