상세 컨텐츠

본문 제목

판다스, 나만의 데이터 만들기

판다스 입문

by ZISEN 2021. 3. 19. 20:41

본문

반응형

1. 시리즈 만들기

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

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

0    banana
1        42
dtype: object

 

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

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

담아 전달하면 됩니다.

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

0         Wes McKinney
1    Craetor 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

3. 데이터프레임 만들기

데이터프레임을 만들기 위해서는 딕셔너리를 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

4. 시리즈와 마찬가지로 데이터프레임도 인덱스를 따로 지정하지 않으면 인덱스를 0부터 자동으로 생성합니다.

인덱스를 따로 지정하려면 index 인자에 리스트를 전달하면 됩니다.

또 columns 인자를 사용하면 데이터프레임의 열 순서를 지정할 수 있습니다.

예를 들어 데이터프레임을 만들 때 Occupation, Born, Died, Age의 순서로 딕셔너리를 전달했어도 columns인자에

Occupation, Born, Age, Died의 순서로 열 이름을 전달하면 생성된 데이터프레임의 열 순서는 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

5. 과정 1에서 데이터프레임을 만들 때 딕셔너리를 전달한다고 했습니다.

그런데 딕셔너리는 키(Key)와 값(Value)으로 이루어진 한 쌍의 데이터들의 순서는 보장하지 않습니다.

만약 순서가 보장된 딕셔너리를 전달하려면 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

 

 

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

반응형

'판다스 입문' 카테고리의 다른 글

판다스, 시리즈 다루기 - 응용  (0) 2021.03.20
판다스, 시리즈 다루기 - 기초  (0) 2021.03.20
그래프 그리기  (0) 2021.03.19
기초적인 통계 계산하기  (0) 2021.03.19
데이터 추출하기  (0) 2021.03.18

관련글 더보기