이번주 관심가는 포스팅 아이템

pandas 기본 사용법에 접근성을 높이는 포스팅

  • #pandas
  • pandas의 기본 기능이 궁금할 때 stackoverflow도 좋지만..
  • 공식 Documents 에 링크를 걸어 설명을 찾을수 있도록 하는 포스팅이 좋을것 같음

예제

  • selection by label : 인덱스및 컬럼 레이블 기준으로 Series나 DataFrame 선택하는 방법.
    • Dictionary 구조에서 key로 선택하는 방법을 연상하면 됨
    • 이 방식에서 가장 기본이 되는 attribute은 .loc
    • slicing with labels : 인덱스및 컬럼 레이블 기준으로 슬라이싱하기
  • selection by position : 위치 기준으로 Series나 DataFrame 선택하는 방법.
    • 리스트 구조에서 인덱스로 선택하는 방법을 연상하면 됨

vim-surround

몇가지 pandas 팁

Pandas 에서 Period 다루기

  • 기간을 넘겨주어 기간에 포함되면 처리하는 동작을 구현하고 싶다
  • Pandas에 Time series / date functionality 가 이미 있으므로 이것을 이용해보자
  • Pandas에는 기간을 의미하는 pandas.Period 라는 객체가 있다
  • 설정하는 방법은 Period 정의하기를 참조한다.
  • period 객체에서 가장 핵심적인 부분은 freq= attribute을 어떻게 설정하느냐는 것이다.
    • 아래 예에서 같은 날짜를 설정했지만 freq=의 설정에 따라 시작시간과 끝시간이 달라진다
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    >>> period = pd.Period('2021-08-21', freq='Y')
    >>> period.start_time
    Timestamp('2021-01-01 00:00:00')
    >>> period.end_time
    Timestamp('2021-12-31 23:59:59.999999999')
      
    >>> period = pd.Period('2021-08-21', freq='M')
    >>> period.start_time
    Timestamp('2021-08-01 00:00:00')
    >>> period.end_time
    Timestamp('2021-08-31 23:59:59.999999999')
      
    >>> period = pd.Period('2021-08-21', freq='W')
    >>> period.start_time
    Timestamp('2021-08-16 00:00:00')
    >>> period.end_time
    Timestamp('2021-08-22 23:59:59.999999999')
      
    >>> period = pd.Period('2021-08-21', freq='3D')
    >>> period.start_time
    Timestamp('2021-08-21 00:00:00')
    >>> period.end_time
    Timestamp('2021-08-23 23:59:59.999999999')
    
  • freq는 기간-object를 결정한다.
    • 어찌보면 vim에서 text-object 개념과 통하는 측면이 있다고 해야하나?
      • 여러가지 사전 정의된 단위로 범위를 설정한다는 개념이 비슷해 보인다
    • 설정하는 방법은 아래 링크를 참고한다
  • pandas.Period의 start_time, end_time attribute과 pandas.Series.between method를 같이 쓰면 특정기간에 해당하는 행만 처리하는 코드를 간단히 구현할 수 있다.

관련된 참조 할만한 링크

기타

번역 : Object-Oriented Programming – The Trillion Dollar Disaster

Water Sort Puzzle Solver

Sudoku Solver

Peter Novig

John M. Zelle

Creative Commons license

Abstruse Goose

  • Trash talk : 스타크래프트, 한글이 나옴

기타