라벨이 pandas인 게시물 표시

Pandas dataframe의 정렬

Dataframe의 정렬 소스코드   https://github.com/pandas-dev/pandas/blob/v2.2.3/pandas/core/frame.py#L6997-L7232 https://github.com/pandas-dev/pandas/blob/v2.2.3/pandas/core/arraylike.py 계산과 관련된 function은 pandas/core/arraylike의 OpsMixin에 있다.     Series     Index     ExtensionArray 와 같은 array-like class 사이에서 공유 가능. SortKind sortkind로 어떤 정렬 방법을 쓸지 지정한다. DataFrame sort는 기본적으로 quick sort를 사용한다. Dataframe.sort_index() 현재 설정된 인덱스를 기준으로 정렬한다. 퀵 정렬 내림차순, 오름차순 설정 Dataframe.sort_values() 어떤 열을 기준으로 정렬할 것인지 선택할 수 있다. 퀵 정렬 내림차순, 오름차순 설정

Pandas dataframe 객체끼리 == 연산자를 사용할 때의 동작

Pandas DataFrame.rename 메서드 실습을 진행하다가 DataFrame.rename 메서드에서 inplace 옵션을 True로 설정하지 않으면 새 df 객체를 반환한다는 것을 알게되었다. 확인을 위해 원본 dataframe과 inplace=False로 행,및 열을 교체한 dataframe을  == 연산자로 비교해보았다. 파이썬 기본 객체처럼 True나 False가 반환될 줄 알았지만 반환되는 것은 boolean 객체가 아니라 True, False를 원소로 가지고 있는 2차원 배열이었다. id()를 통해 dataframe 자체는 다른 객체임을 확인했지만 ==, eq 연산자가 예상한대로 작동하지 않아서  pandas의 DataFrame class에 대해 조금 파보았다. pandas DataFrame 에서의 __eq__ https://github.com/pandas-dev/pandas/blob/main/pandas/core/frame.py#L7840 https://github.com/pandas-dev/pandas/blob/main/pandas/core/internals/ops.py def _flex_cmp_method(self, other, op, *, axis: Axis = "columns", level=None): axis = self._get_axis_number(axis) if axis is not None else 1 self, other = self._align_for_op(other, axis, flex=True, level=level) new_data = self._dispatch_frame_op(other, op, axis=axis) return self._construct_result(new_data) @Appender(ops.make_flex_doc("eq", "dataframe")) de...

Pandas 기초 데이터형과 조작법

실습 코드 자료는 좌측 상단의 Repository를 참고 Pandas python기반 오픈소스 데이터 분석 라이브러리. numpy object를 내부적으로 활용하고있다. Series 열 벡터로 이루어진 데이터형. 데이터 주소값인 index, 데이터 값인 value의 쌍으로 이루어져있다. index는 정수형 위치 index와 이름 index(label index)가 있고 이 값들로 데이터나 Slicing된 데이터 범위에 접근할 수 있다. (Series의 Index는 RangeIndex객체로 표현된다.) numpy 1.26.4 pandas 2.2.2에서 정수형 위치 index로 접근할 경우  FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior).To access a value by position, use `ser.iloc[pos]` 의 Future warning이 뜬다. 정수형 인덱스로 접근을 할 때는 iloc 을 이용하도록 명시되어있다. python의 dict, tuple을 Series로 변환할 수 있다. dict는 key,value쌍이기 때문에 그대로 변환되지만 tuple은 인덱스가 없는 값들이기 때문에 Series로 변환 시 index를 지정해주어야한다. Dataframe 2차원 배열. 열의 모음이며, 시리즈의 모음이라고 할 수 있다. 열벡터의 모음이기 때문에 2차원 벡터이다. 딕셔너리의  key -> 열 이름 = 시리즈 이름 = 데이터프레임의 열 이름 value -> 행 값의 리스트 로 변환되어 데이터 프레임을 구성한다. python의 딕셔너리와 이중 리스트를 DataFrame으로 변환할 수 있다. 2차원 배열 형태이기 때문에 Series와 달리  딕셔너리...

이 블로그의 인기 게시물

실무진 면접 경험으로 정리하는 백엔드 (1) : 에듀 테크 기업 면접

노마드코더 개발자북클럽 Clean code 완주, 독후감

Blogger 커스터마이징 : CSS 수정 (sticky-header)