반응형
팬더: 병합된 세포를 사용하여 Excel 읽기
여러 개의 시트가 있는 Excel 파일을 가지고 있는데, 각각은 다음과 같이 보입니다(단, 훨씬 더 깁니다).
Sample CD4 CD8
Day 1 8311 17.3 6.44
8312 13.6 3.50
8321 19.8 5.88
8322 13.5 4.09
Day 2 8311 16.0 4.92
8312 5.67 2.28
8321 13.0 4.34
8322 10.6 1.95
첫 번째 열은 수직으로 병합된 4개의 셀입니다.
panda.read_excel을 사용하여 읽으면 다음과 같은 Data Frame이 나타납니다.
Sample CD4 CD8
Day 1 8311 17.30 6.44
NaN 8312 13.60 3.50
NaN 8321 19.80 5.88
NaN 8322 13.50 4.09
Day 2 8311 16.00 4.92
NaN 8312 5.67 2.28
NaN 8321 13.00 4.34
NaN 8322 10.60 1.95
어떻게 하면 팬더에게 합병된 세포를 이해시킬 수 있을까요?아니면 NaN과 그룹을 적절한 값으로 빠르고 쉽게 제거할 수 있을까요?한 가지 방법은 인덱스를 리셋하고 값을 찾아 NaN을 값으로 대체하여 일별 목록을 통과한 후 인덱스를 컬럼으로 설정하는 것입니다.하지만 좀 더 간단한 접근법이 있어야 할 것 같습니다.)
시리즈를 사용할 수 있습니다.fillna 메서드를 사용하여 NaN 값을 입력합니다.
df.index = pd.Series(df.index).fillna(method='ffill')
예를들면,
In [42]: df
Out[42]:
Sample CD4 CD8
Day 1 8311 17.30 6.44
NaN 8312 13.60 3.50
NaN 8321 19.80 5.88
NaN 8322 13.50 4.09
Day 2 8311 16.00 4.92
NaN 8312 5.67 2.28
NaN 8321 13.00 4.34
NaN 8322 10.60 1.95
[8 rows x 3 columns]
In [43]: df.index = pd.Series(df.index).fillna(method='ffill')
In [44]: df
Out[44]:
Sample CD4 CD8
Day 1 8311 17.30 6.44
Day 1 8312 13.60 3.50
Day 1 8321 19.80 5.88
Day 1 8322 13.50 4.09
Day 2 8311 16.00 4.92
Day 2 8312 5.67 2.28
Day 2 8321 13.00 4.34
Day 2 8322 10.60 1.95
[8 rows x 3 columns]
df = df.fillna(method='ffill', axis=0) # resolved updating the missing row entries
8년 후에 다시 돌아오면 panda.read_excel()이 index_col 파라미터를 사용하여 내부적으로 해결할 수 있습니다.
df = pd.read_excel('path_to_file.xlsx', index_col=[0])
index_col을 목록으로 전달하면 팬더가 MultiIndex를 찾습니다.길이가 1인 목록이 있는 경우 판다들은 데이터를 채우는 정기적으로 인덱스를 만듭니다.
언급URL : https://stackoverflow.com/questions/22937650/pandas-reading-excel-with-merged-cells
반응형
'programing' 카테고리의 다른 글
| WPF에서 비활성화 버튼을 선택하시겠습니까? (0) | 2023.04.19 |
|---|---|
| UIButton 제목 텍스트 색상은 어떻게 설정하나요? (0) | 2023.04.19 |
| 문자열을 C#의 열거형으로 변환합니다. (0) | 2023.04.19 |
| 부호 없는 정수 오버플로를 검출하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
| Excel의 mod 함수와 동등한 VBA (0) | 2023.04.19 |