Pandas (2) - DataFrame과 Series (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 개발자 양성 과정 - 심선조 강사님의 강의를 정리한 내용입니다.
댓글남기기