반응형

Python/Pandas 47

[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] 파이썬 판다스 Deep copy와 Shallow copy 비교(데이터 프레임 복사 copy 함수)

이번 포스팅에서는 파이썬 판다스에서 깊은 복사(Deep copy)와 얕은 복사(Shallow copy)의 차이에 대해서 알아보고, 판다스에서 데이터프레임 복사 시에 copy 함수를 사용해야 하는 이유에 대해서 말씀드려보려 합니다. 판다스 데이터프레임 얕은 복사(Shallow copy) 얕은 복사는 데이터를 지정하고 있는 주소까지 복사하여 복사된 객체를 변경했을 때, 원래 객체까지 같이 변경되는 복사를 의미합니다. 일단 간단한 데이터프레임을 하나 선언해볼까요? 이제 df_1 = df 형태로 그냥 단순 shallow copy를 진행해보고 데이터프레임 내 값을 1개 바꾼 뒤, 원래 객체 데이터프레임인 df의 값을 살펴보도록 하겠습니다. 맨 위의 값 한개를 loc함수를 이용하여 변경하였습니다. df_1의 값은 ..

Python/Pandas 2021.11.19

[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

[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
반응형