본문 바로가기
Python

pandas 기초정리-3

by 앵남(Andy) 2021. 9. 23.

글 개요 

https://yoo-young.tistory.com/20

 

pandas 기초정리 -2

글 개요 https://yoo-young.tistory.com/19 Pandas - 기초 정리 글 개요 이번 글에서는 pandas 라이브러리 기초적인 내용을 정리하려고 합니다. 이 글을 보고 누군가에게 도움이 된다면 좋을거 같습니다. 글 본

yoo-young.tistory.com

이전에 작성햇던 pandas 기초정리 -2에 이어서 pandas 문법을 정리하려고 합니다. 

 

글 본문

info()함수 

데이터프레임의 간략하게 정보를 볼 수 있는 info라는 함수가 있습니다. 

test_data =pd.DataFrame({
    "a": [1,2,3,4],
    'b': [np.NaN, np.NaN, np.NaN,np.NaN]
})
test_data.info()

결과

이렇게 데이터프레임에 어떤 값들이 있고 몇개 데이터를 가지고 있는지, 어떤 컬럼들이 존재하는지 컬럼의 데이터 타입은 무엇인지 확인할 수 있습니다. 

 

 

isnull()함수

isnull()함수는 데이터의 NaN데이터가 들어가있는지 확인할 수 있습니다. 

보통 isnull().sum()을 해준다면, 각 컬럼의 nan 몇개 있는지 확인할 수 있습니다. 

notnull()함수는 null값이 들어있지않은 함수들만 볼 때 사용합니다.

test_data =pd.DataFrame({
    "a": [1,2,3,4],
    'b': [np.NaN, np.NaN, np.NaN,np.NaN]
})

test_data.isnull()

test_data.isnull().sum()

test_data.notnull()

 

 

 

 

pivot table

엑셀에서 사용하는 피봇기능을 판다스에서도 사용할 수 있습니다. 

pivot table 함수가 가지고 있는 옵션은 index, columns, value, aggfunc 옵션들이 존재합니다. 

yoo = pd.DataFrame({
    'name':['a', 'b', 'c', 'd'],
    'number': [1,2,3,4]
})
display(yoo, pd.pivot_table(yoo, index='name'))

간단한 데이터프레임을 만들고 name이라는 컬럼을 인덱스로 사용하는 방법입니다. 

결과

첫 번째 이미지가 원본 데이터프레임이고 두 번째 이미지가 pivot table를 사용했을 때 결과입니다. 이번에는 두개이상의 index를 설정하고 싶을 때 사용하는 방법입니다.

yoo = pd.DataFrame({
    'name':['a', 'b', 'c', 'd'],
    'address':['AVs', 'News', 'Fran', 'Jquery'],
    'number': [1,2,3,4],
    'call':[1234,2323,2321,5555]
})
display(yoo, pd.pivot_table(yoo, index=['name', 'address']))

 

결과

첫 번째 이미지가 원본 데이터프레임이고 두 번째가 두개 이상의 인덱스 설정한 결과입니다. 

values 옵션 사용해보기 vaues옵션은 원하는 컬럼만 피봇결과를 확인할 수 있습니다. 아래 예시를 보시면 이해가 더 빠릅니다. 

yoo = pd.DataFrame({
    'name':['a', 'b', 'c', 'd'],
    'address':['AVs', 'News', 'Fran', 'Jquery'],
    'number': [1,2,3,4],
    'call':[1234,2323,2321,5555]
})
display(yoo, pd.pivot_table(yoo, index=['name', 'address'], values=['call']))

결과

첫 번째가 원본 데이터프레임이고 두 번째 데이터프레임은 인덱스를 name과 address를 준 pivot table이고 마지막이 values에 call 컬러만 설정했을 때 결과입니다. 차이점이 보이시나요? 이제 columns 옵션을 보겠습니다. 

 

yoo = pd.DataFrame({
    'name':['a', 'b', 'c', 'd'],
    'address':['AVs', 'News', 'Fran', 'Jquery'],
    'number': [1,2,3,4],
    'call':[1234,2323,2321,5555]
})
# display(yoo, pd.pivot_table(yoo, index=['name', 'address']),pd.pivot_table(yoo, index=['name', 'address'], values=['call']))
display(yoo, pd.pivot_table(yoo, index=['name', 'address'], columns=['number']))

결과

columns옵션을 주면 number에 있는 값들이 컬럼으로 사용이 됩니다. pivot table의 집계함수 옵션을 사용할 수 있습니다.

yoo = pd.DataFrame({
    'name':['a', 'b', 'c', 'd', 'a'],
    'address':['AVs', 'News', 'Fran', 'Jquery', 'AVs'],
    'number': [1,2,3,4, 5],
    'call':[1234,2323,2321,5555, 2222]
})
display(yoo, pd.pivot_table(yoo, index=['name', 'address'], aggfunc=np.sum))

 

결과

aggfunc 옵션은 집계함수 기능을 사용할 수 있습니다. 첫 번째 데이터프레임을 보시면 이름이 a이고 주소가 AVs인 데이터가 두개 존재합니다. 여기서 aggfunc 집계함수 옵션에 np.sum 넣어주시면 이름이 a이면서 주소가 AVs인 애들끼리 합산합니다. 

 

aggfunc 옵션도 멀티로 설정할 수 있습니다. 

yoo = pd.DataFrame({
    'name':['a', 'b', 'c', 'd', 'a'],
    'address':['AVs', 'News', 'Fran', 'Jquery', 'AVs'],
    'number': [1,2,3,4, 5],
    'call':[1234,2323,2321,5555, 2222]
})
display(yoo, pd.pivot_table(yoo, index=['name', 'address'],aggfunc=[np.sum, len]))

결과

이렇게 aggfunc 옵션도 멀티로 사용이 가능합니다.  pivot table 함수에는 fill_value 라는 옵션이 있는데 이 옵션은 NaN값들을 원하는 값으로 대체해주는 기능입니다. 또한 margin = True 옵션을 주면 그 피벗테이블의 각 컬럼 총 합계를 구해줍니다.

'Python' 카테고리의 다른 글

Python - 진법  (0) 2021.09.27
파이썬 seaborn - 기초문법  (0) 2021.09.24
파이썬 matplotlib 기초-2  (0) 2021.09.19
파이썬 matplotlib 기초  (0) 2021.09.18
pandas 기초정리 -2  (0) 2021.09.16

댓글