[Python / pandas] Series, DataFrame 기본¶
In [48]:
import pandas as pd
pandas는 numpy를 기반으로 해서 돌아가는 라이브러리이다.
Series¶
1차원 자료구조로, 리스트 같은 데이터를 받는다.
In [49]:
s1 = pd.Series([1,2,3,4,5])
s1
Out[49]:
In [50]:
s2 = pd.Series(['one', 'two',' three', 'four', 'five'])
s2
Out[50]:
DataFrame¶
2차원 자료구조로, 행과 열이 있는 테이블 형식의 데이터(=Tabular Data)를 받는다.
Series로 구성된 것이 DataFrame이다.
In [51]:
# 딕셔너리를 pd.DataFrame()으로 변환해보자.
data = {
'이름' : ['철수', '영희', '민수', '명수'],
'나이' : [10, 11, 9, 13],
'성별' : ['남', '여', '남', '남'],
}
df = pd.DataFrame(data)
df
Out[51]:
In [52]:
# 혹은 2개의 Series를 이용하여 DataFrame을 만들어보자.
s1 = pd.Series([1,2,3,4,5])
s2 = pd.Series(['one', 'two', 'three', 'four', 'five'])
# 'num'이름을 갖는 col에는 s1 정보가 담긴다
# 'word'이름을 갖는 col에는 s2 정보가 담긴다.
df1 = pd.DataFrame(data = dict(num = s1, word = s2))
df1
Out[52]:
In [53]:
# 딕셔너리 외에, 일반적인 리스트도 입력값으로 받을 수 있을까? (Y)
data = [1,2,3,4,5]
df = pd.DataFrame(data)
df
Out[53]:
In [54]:
# 2차원 리스트를 DataFrame으로 변환하기
data = [[1,10], [2,20], [3,30], [4,40], [5,50], [6,60], [7,70], [8,80], [9,90]]
df = pd.DataFrame(data)
df
Out[54]:
데이터 접근하기¶
In [55]:
# 먼저 DataFrame을 만들자.
data = {
'이름' : ['철수', '영희', '지수', '웅이'],
'나이' : [25, 26, 27, 25],
'키' : [175, 162, 181, 200],
'체중' : [70, 60, 80, 100],
'주소' : ['안양', '서울', '파주', '인천']}
df = pd.DataFrame(data)
df
Out[55]:
체중과 관련된 정보들을 가져오고 싶다.
- df[ '체중' ]
- df.체중
In [56]:
df['체중']
Out[56]:
In [57]:
df.체중
Out[57]:
boolean indexing을 이용해서 특정 조건의 데이터만을 가져오는 것도 가능하다.
DataFrame[특정조건] 형식을 취하면, boolean indexing을 할 수 있다.
In [58]:
# 체중이 70 이상인 데이터만 가져오기
df[df['체중'] >= 70]
Out[58]:
In [59]:
# 체중이 70 미만인 데이터만 가져오기
df[df['체중'] < 70]
Out[59]:
외부 데이터 가져오기 (csv 파일)¶
In [60]:
## 캐글의 타이타닉 csv파일을 가져오자.
df = pd.read_csv('C:\\Users\\Juhee\\Desktop\\titanic\\train.csv')
In [61]:
df
Out[61]:
head(), tail()함수¶
In [62]:
# head() : 맨 위의 5개 데이터를 보여준다.
df.head()
Out[62]:
In [63]:
# tail() : 맨 아래의 5개 데이터를 보여준다.
df.tail()
Out[63]:
describe() 함수¶
DataFrame의 기본적인 통계치를 볼 수 있다.
In [64]:
df.describe()
Out[64]:
In [65]:
# describe()를 이용해서 count, mean, std, min, max를 한꺼번에 볼 수 있지만
# 하나씩 보는것도 가능하다!
df['Age'].mean()
Out[65]:
In [66]:
df['Age'].std()
Out[66]: