pandas_excel.py
불러올 엑셀파일 : mandoo_management.xlsx
저장된 엑셀파일 : result.xlsx

  1. 새로운 파이썬 파일을 만든다.
  2. 불러올 엑셀파일을 만들고, 해당 프로젝트(studying_pandas)에 mandoo_management.xlsx 엑셀파일을 저장하자(csv아님)
    image
  3. 이제 파이썬에서 pandas모듈을 이용해 엑셀파일을 불러오고, 테스트로 출력까지 해보자.
    - df = pd.read_excel('mandoo_management.xlsx', sheet_name='Sheet1')와 같이
    Pandas -> DataFrame으로 불러오는데, pd.read_excel()함수를 사용하고, 인자에는 ('파일명', sheet_name='시트명')이 필요하다
    *엑셀의 기본시트명은 Sheet1 이다.
    - 불러온 것을 print(df) 으로 확인하려 했더니, install xlrd라는 어떠한 Excel support가 필요하다고 에러가 난다.
    image

  4. Settings > Project Interpreter > + > xlrd를 검색해서 설치하고, 다시 출력시켜보자.
    image
    image

    확인해보았더니, 판다스에서는 첫row를 자동으로 칼럼명으로 인지한 것을 확인할 수 있다.

    CSV를 다룰 때는,
    읽을 때, 첫ROW를 제외하고
    쓸때는 첫ROW를 따로 쓰고 나머지를 FOR문에서 썼다.

  5. 첫row로 인지된 칼럼명row 중 하나의 칼럼을 출력시켜보자
    - print( df['칼럼명'] )
    image

  6. 출근시간 퇴근시간 칼럼을 이용하여, 근무시간 칼럼즈를 추가해보자
    - df['근무시간'] = df['퇴근시간'] - df['출근시간']
    image

    마찬가지로, 시간당 만두생산 칼럼을 추가해보자.
    - df['시간당 만두'] = df['만두생산'] / df['근무시간']
    image


  7. 이제 시간당 만두를 잘만드는 사람의 순위를 메겨보여주도록 해보자.
    특정 칼럼을 기준으로 df를 새롭게 위치시켜 보여준다.
    df.sort_values()함수로 정렬을 하는데,
    by=['칼럼명']  -> 해당칼럼을 기준으로 정렬한다.
    ascending=[False] -> 오름차순을 False로 두어, 내림차순으로 정렬된다.

    - df = df.sort_values(by=['시간당 만두'], ascending=[False])

    image

    기준칼럼이 똑같은 경우에는, 2순위의 칼럼을 지정할 수 있다. 이 때, ascending인자에도 False로 내림차순 만들어줘야한다.
    위에서는 시간당만두가 100.0 으로 같은 조재성과 안철수 중 근무시간은 안철수가 더 많다.
    - df = df.sort_values(by=['시간당 만두' , '근무시간' ], ascending=[False, False])
    image

  8. DataFrame이 완성되었다면, 엑셀로 저장할 수 있다. 마찬가지로 시트명을 같이 명시해줘야한다.
    - df.to_excel('result.xlsx',  sheet_name='Sheet1)
    바로 실행시키면 아래와 같이 openpyxl모듈이 없다고 뜬다. 마찬가지로 설치해주면된다.
    image
    image
    image
    image


결론적으로, 기본 엑셀파일이 -> pandas를 거쳐 ->

계산식을 통한 새로운 칼럼 추가 & sorting(1순위>2순위)이 되어서 저장


pandas에서 엑셀파일을

열때는-->  xlrd

저장할 때는--> openpyxl

모듈이 필요했다.

+ Recent posts