1 분 소요


판다스 데이터프레임과 시리즈

나만의 데이터 만들기

In [4]:
import pandas as pd
In [5]:
s = pd.Series(['banana', 42])
s
Out [5]:
0    banana
1        42
dtype: object
In [6]:
s = pd.Series(['Wes', 'pandas'], index=['Person', 'Who'])
s
Out [6]:
Person       Wes
Who       pandas
dtype: object
In [7]:
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]
})
scientists
Out [7]:
Name Occupation BOrn Died Age
0 Rosaline Franklin Chemist 1920-0725 1958-04-16 37
1 William Gosset Statistician 1876-06-13 1937-10-16 61
In [9]:
scientists = pd.DataFrame(
    data={'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]},
    index=['Rosaline Franklin', 'William Gosset'],
    columns=['Occupation', 'Died', 'Born', 'Age'] # column의 순서를 지정
)
scientists
Out [9]:
Occupation Died Born Age
Rosaline Franklin Chemist 1958-04-16 1920-07-25 37
William Gosset Statistician 1937-10-16 1876-06-13 61
  • 순서가 있는 Dictionary
    from collections import OrderedDict
    OrderedDict([리스트형태(튜플로 키, 값)])
    

    보통 순서가 중요하지 않기에 있다는것 정도만 알기

시리즈 다루기 ― 기초

In [12]:
df = pd.read_csv('data/scientists.csv')
df.head(3)
Out [12]:
Name Born Died Age Occupation
0 Rosaline Franklin 1920-07-25 1958-04-16 37 Chemist
1 William Gosset 1876-06-13 1937-10-16 61 Statistician
2 Florence Nightingale 1820-05-12 1910-08-13 90 Nurse
In [13]:
df.index
Out [13]:
RangeIndex(start=0, stop=8, step=1)
In [14]:
df.columns
Out [14]:
Index(['Name', 'Born', 'Died', 'Age', 'Occupation'], dtype='object')
In [15]:
df.values
Out [15]:
array([['Rosaline Franklin', '1920-07-25', '1958-04-16', 37, 'Chemist'],
       ['William Gosset', '1876-06-13', '1937-10-16', 61, 'Statistician'],
       ['Florence Nightingale', '1820-05-12', '1910-08-13', 90, 'Nurse'],
       ['Marie Curie', '1867-11-07', '1934-07-04', 66, 'Chemist'],
       ['Rachel Carson', '1907-05-27', '1964-04-14', 56, 'Biologist'],
       ['John Snow', '1813-03-15', '1858-06-16', 45, 'Physician'],
       ['Alan Turing', '1912-06-23', '1954-06-07', 41,
        'Computer Scientist'],
       ['Johann Gauss', '1777-04-30', '1855-02-23', 77, 'Mathematician']],
      dtype=object)
In [16]:
df.keys() # 메서드 # columns는 속성
Out [16]:
Index(['Name', 'Born', 'Died', 'Age', 'Occupation'], dtype='object')
In [17]:
# 평균나이
df['Age'].mean()
Out [17]:
59.125
In [18]:
# 가장 적은
df['Age'].min()
Out [18]:
37
In [19]:
# 가장 많은
df['Age'].max()
Out [19]:
90

시리즈 메서드

메서드 설명
append 2개 이상의 시리즈 연결
describe() 요약 통계량 계산
drop_duplicates 중복값이 없는 시리즈 반환
equals 시리즈에 해당 값을 가진 요소가 있는지 확인
get_values 시리즈 값 구하기
isin 시리즈에 포함된 값이 있는지 확인
min 가장 작은 값
max 가장 큰 값
mean 평균 값
median 중간값 반환
replace 특정 값을 가진 시리즈 값을 교체
sample 시리즈에서 임의의 값을 반환
sort_values 값을 정렬
to_frame 시리즈를 데이터 프레임으로 반환
In [20]:
# 요약 통계량 계산
df.describe()
Out [20]:
Age
count 8.000000
mean 59.125000
std 18.325918
min 37.000000
25% 44.000000
50% 58.500000
75% 68.750000
max 90.000000

Reference

  • 이 포스트는 SeSAC 인공지능 자연어처리, 컴퓨터비전 기술을 활용한 응용 SW 개발자 양성 과정 - 심선조 강사님의 강의를 정리한 내용입니다.

댓글남기기