반응형

판다스 37

[Pandas] 파이썬 판다스 데이터프레임 인덱싱 총정리(loc, iloc)

안녕하세요. 이번 글에서는 헷갈려보이지만 알고보면 굉장히 간단한 판다스 데이터프레임에서 인덱싱을 하는 방법에 대해서 다루어보려고 합니다. 참고로, 데이터프레임은 행은 인덱스를 기준으로, 열은 열 이름을 기준으로 명명되어있다는 점을 기억해두세요! 판다스 데이터프레임 인덱스, column 이름을 기준으로 인덱싱 : loc 함수 다음과 같은 아주 간단한 데이터프레임을 예시로 인덱싱 과정을 설명해보도록 하겠습니다. 학생 5명의 이름과 성적이라고 가정해보겠습니다. 우선 첫 번째로, a1, a2, a3 인덱스를 가진 행을 추출해보겠습니다. loc 함수 내에 원하는 index들을 리스트로 감싸서 input으로 넣어주면 됩니다! 참고로, csv 파일을 불러온 경우 등에서 기본적으로 0부터 시작하는 숫자 index를 가..

Python/Pandas 2021.11.27

[Pandas] 파이썬 판다스 데이터프레임 정수형(int), 문자열(str) 타입 변환(astype)

판다스 문자열(str), 정수형(int) 타입 변환하기 : astype 함수 이번 포스팅에서는 astype 함수를 통하여 판다스 데이터프레임 column의 자료형을 변환시키는 방법에 대해서 알아보도록 하겠습니다. 일단 다음과 같은 상황을 생각해보겠습니다. 먼저 간단한 데이터프레임을 선언한 뒤에 데이터 프레임 내 score 열의 점수를 모두 더하려는 상황인데 세 숫자가 합쳐진 것이 아니라, 문자열(str) 자료형의 덧셈처럼 concat이 되어 6자리의 숫자처럼 변해버린 상황이라고 가정해보겠습니다. 원하는 결과를 얻지 못한 상태입니다. dtypes를 통하여 각 column의 자료형을 살펴보니 int 자료형이 아닌 object 자료형이 들어있는 것을 확인할 수 있습니다. 이제 astype 함수를 통하여 int..

Python/Pandas 2021.11.24

[Pandas] 파이썬 판다스 그룹화 하기 : groupby 함수

파이썬 판다스에서 데이터프레임을 원하는 열을 기준으로 그룹화하여 필요한 정보를 얻어낼 수 있는 groupby 함수의 사용법에 대해서 자세히 다루어보도록 하겠습니다. 판다스 그룹화 : Pandas groupby 함수 우선, 다음과 같은 데이터프레임이 df라는 변수에 저장되어 있다고 가정해보겠습니다. 이름, 학급, 성별, 국적, 점수 5개의 column으로 이루어진 간단한 데이터프레임입니다. 국적 column에는 일부 결측치도 있다고 가정해보겠습니다. groupby 사용법 1 : 그룹화 한 후 특정 column 대상 개수 세기, 평균 내기 첫 번째로, 학급을 기준으로 각 column의 유효 element 개수(결측치 제외한 값의 개수)를 세어보도록 하겠습니다. df.groupby('class').count(..

Python/Pandas 2021.11.16

[Pandas] 파이썬 데이터프레임 열, 행에 함수 적용 - apply 함수

파이썬에서 판다스를 이용하여 데이터프레임 작업을 하다보면 특정 column이나 row에 원하는 작업을 시키고 싶은 경우가 많을 것입니다. 이번 포스팅에서는 간단하지만 알아두면 굉장히 요긴한 데이터프레임 열, 행에 함수를 적용시킬 수 있는 pandas 내 apply 함수의 사용법에 대해서 간단히 다루어보도록 하겠습니다. apply 함수로 판다스 데이터프레임 열에 함수 적용 첫 번째로, apply 함수로 column에 함수를 적용하는 예시를 보여드리도록 하겠습니다. 예를 들어 다음과 같은 데이터프레임이 있다고 가정하겠습니다.(변수명 : score_df) name mid final assign 0 'abc' 95 97 100 1 'def' 80 92 95 2 'ghi' 85 58 98 3 'jkl' 70 84..

Python/Pandas 2021.11.11

[Python] 진행시간, 진행률 표시하기 - tqdm (pandas apply에도 적용하기)

파이썬으로 코딩을 진행할 때, for문 작업이나 pandas의 apply 작업 등 반복 작업을 실행할 때, 현재 몇%가 진행되었고, 얼마나 시간이 더 소요될지에 대한 진행률, 진행시간을 알고 싶을 때가 있을 것입니다. 이번 포스팅에서는 반복 작업에 대한 진행 상황을 알려주는 tqdm 라이브러리를 소개하고 pandas의 apply 함수에도 적용할 수 있는 방법까지 알려드리도록 하겠습니다. tqdm 라이브러리 우선, 라이브러리 설치 과정은 매우 간단합니다. 콘솔창이나 아나콘다, 혹은 주피터 노트북 상에 pip install tqdm 혹은 conda install tqdm이라고 입력해주시면 됩니다. 사용법은 다음 두 코드를 비교해보시면 됩니다. j = 0 for i in range(10000000): j +=..

Python/Utils 2021.11.05

[Pandas] 데이터프레임 인덱싱 loc, at 차이(iloc, iat 차이)

이번 포스팅에서는 pandas 내 데이터프레임에서 인덱싱을 하는 loc, at과 iloc, iat 함수의 차이를 분석해보도록 하겠습니다. 데이터 프레임으로는 kaggle의 타이타닉 데이터셋을 활용하여 예시를 들어보도록 하겠습니다. loc, at 분석 이 두 함수에서 인덱싱을 하는 여러 경우에 대하여 가능 여부를 살펴보도록 하겠습니다. 1) 단일 데이터 인덱싱 예를 들어, 'Pclass' 열의 100번 인덱스를 가지는 행의 값을 찾는 경우 두 함수 모두 정상 작동하는 것을 확인할 수 있습니다. 2) 한 column 내 범위 인덱싱 예를 들어, 'Pclass' 열의 100~102번 인덱스를 가지는 행들의 값을 찾는 경우 loc 함수는 정상 작동되지만, at 함수는 지원하지 않는 기능이라 ValueError가..

Python/Pandas 2021.11.05

[Pandas] 인덱스 초기화, 재정렬 (groupby 후 행 정렬) - reset_index

Groupby 함수, 멀티인덱스 파이썬 데이터 분석 툴인 Pandas를 사용하다보면 groupby 기능을 자주 사용하게 되고, 두 가지 이상의 범주로 groupby를 실행한 경우, 자동으로 멀티인덱스가 적용되어, 다음과 같이 뭉쳐있는 데이터 프레임의 형태를 살펴볼 수 있다. 해당 데이터 셋은 kaggle에서 제공하는 타이타닉 데이터셋을 사용하였고, 다음과 같이 Pclass와 Survived 열로 groupby를 실행한 결과이다. df = pd.DataFrame(train.groupby(['Pclass', 'Survived'])['Name'].count()) 우리는 다음과 같이 각 행이 나누어져있고, 인덱스가 초기화된 결과를 얻고 싶을 때가 있다. 이후 인덱싱이나 다른 작업에 넘길때 일반 데이터프레임처럼 ..

Python/Pandas 2021.11.04
반응형