programing

팬더: 병합된 세포를 사용하여 Excel 읽기

easyjava 2023. 4. 19. 23:34
반응형

팬더: 병합된 세포를 사용하여 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

반응형