티스토리 뷰

#4 판다스 chapter 4. 판다스 시리즈 다루기

 

1. 나만의 데이터 만들기

 

* 시리즈 만들기

 

판다스의 series 메서드에 리스트를 전달하여 시리즈를 생성한다.

 

import pandas as pd
s = pd.Series(['banana',42])
print(s)

0    banana
1        42
dtype: object

 

시리즈를 생성할 때 문자열로 인덱스를 지정할 수도 있다. 

 

s = pd.Series(['Wes McKinney', 'Creator of Pandas'])
print(s)

0         Wes McKinney
1    Creator of Pandas
dtype: object

s = pd.Series(['Wes McKinney', 'Creator of Pandas'], index=['Person', 'Who'])
print(s)


Person         Wes McKinney
Who       Creator of Pandas
dtype: object

 

문자열을 인덱스로 지정하려면 Series메서드의 index 인자를 통해 인덱스로 사용하고자 하는 문자열을 리스트에 담아 전달하면 된다.

 

* 데이터 프레임 만들기

 

데이터 프레임을 만들기 위해서는 딕셔너리를 DataFrame 클래스에 전달해야한다.

 

scientists = pd.DataFrame({
    'Name': ['Rosaline Franklin', 'William Gosset'],
    'Occupation': ['Chemist', 'Statistician'],
    'Born': ['1920-07-25', '1876-06-13'],
    'Died': ['1958-04-16', '1937-10-16' ],
    'Age': [37,61]}
)
print(scientists)

Name    Occupation        Born        Died  Age
0  Rosaline Franklin       Chemist  1920-07-25  1958-04-16   37
1     William Gosset  Statistician  1876-06-13  1937-10-16   61

 

시리즈와 마찬가지로 데이터 프레임도 인덱스를 따로 지정하지 않으면 0부터 시작한다. 인덱스를 따로 지정하려면 index 인자에 리스트를 전달하면 된다. 또 columns 인자를 사용하면 데이터프레임의 열 순서를 지정할 수 있다.

 

scientists = pd.DataFrame(
    data={'Occupation': ['Chemist', 'Statistician'],
          'Born':['1920-07-25', '1876-06-13'],
          'Died':['1958-04-16', '1937-10-16'],
          'Age':[37,61]},
    index = ['Rosaline Franklin', 'William Gosset'],
    columns = ['Occupation', 'Born', 'Age', 'Died']
)
print(scientists)

     Occupation        Born  Age        Died
Rosaline Franklin       Chemist  1920-07-25   37  1958-04-16
William Gosset     Statistician  1876-06-13   61  1937-10-16

 

앞서 데이터 프레임을 만들 때 딕셔너리를 전달한다고 했다. 하지만 딕셔너리는 키와 값으로 이루어진 한 쌍의 데이터들의 순서는 보장하지 않는다. 순서가 보장된 딕셔너리를 전달하려면 OrderedDict를 사용해야 한다.

 

from collections import OrderedDict

scientists = pd.DataFrame(OrderedDict([
    ('Name',['Rosaline Franklin', 'William Gosset']),
    ('Occupation', ['Chemist', 'Statistician']),
    ('Born', ['1920-07-25', '1876-06-13']),
    ('Died', ['1958-04-16', '1937-10-16' ]),
    ('Age', [37,61])
])
                         )
print(scientists)
    
 Name    Occupation        Born        Died  Age
0  Rosaline Franklin       Chemist  1920-07-25  1958-04-16   37
1     William Gosset  Statistician  1876-06-13  1937-10-16   61

 

2 . 시리즈 다루기 _ 기초

 

먼저 데이터 프레임에서 시리즈를 선택하는 방법을 알아보자.

 

scientists = pd.DataFrame(
    data={'Occupation': ['Chemist', 'Statistician'],
          'Born':['1920-07-25', '1876-06-13'],
          'Died':['1958-04-16', '1937-10-16'],
          'Age':[37,61]},
    index = ['Rosaline Franklin', 'William Gosset'],
    columns = ['Occupation', 'Born', 'Age', 'Died'])
    
first_row = scientists.loc['William Gosset']
print(type(first_row))

<class 'pandas.core.series.Series'>

print(first_row)

Occupation    Statistician
Born            1876-06-13
Age                     61
Died            1937-10-16
Name: William Gosset, dtype: object

 

데이터 프레임에서 시리즈를 선택하려면 loc 속성에 인덱스를 전달하면 된다. 데이터프레임을 만들 때 Age 열에 정수형 리스트를 전달해도 시리즈를 출력해보면 시리즈의 자료형을 오브젝트로 인식한다.

 

* 시리즈 속성과 메서드 사용하기 - index, values, keys

 

- index 속성 사용하기

 

print(first_row.index)

Index(['Occupation', 'Born', 'Age', 'Died'], dtype='object')

 

- values 속성 사용하기

 

print(first_row.values)

['Statistician' '1876-06-13' 61 '1937-10-16']

 

- keys 메서드 사용하기

 

keys는 속성이 아니라 메서드이다. keys 메서드는 index 속성과 같은 역할을 한다.

 

print(first_row.keys())

Index(['Occupation', 'Born', 'Age', 'Died'], dtype='object')

 

- index 속성 응용하기

 

print(first_row.index[0])

Occupation

print(first_row.keys()[0])

Occupation

 

* 시리즈의 기초 통계 메서드 사용하기

 

시리즈에는 keys 메서드 외에도 mean,min,max,std 메서드가 있다. 사용 방법을 알아보자.

 

print(ages.mean())

49.0

print(ages.min())

37

print(ages.max())

61

print(ages.std())

16.97056274847714

 

- 시리즈 메서드 정리

 

append                  2개 이상의 시리즈 연결
describe                요약 통계량 계산
drop_duplicates         중복값이 없는 시리즈 반환
equals                  시리즈에 해당 값을 가진 요소가 있는지 확인
get_values              시리즈 값 구하기(values 속성과 동일)
isin                    시리즈에 포함된 값이 있는지 확인
min                     최솟값 반환
max                     최댓값 반환
mean                    산술 평균 반환
median                  중간값 반환
replace                 특정 값을 가진 시리즈 값을 교체
sample                  시리즈에서 임이의 값을 반환
sort_values             값을 정렬
to_frame                시리즈를 데이터프레임으로 변환

 

 

출처 : 데이터 분석을 위한 판다스 입문

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함