반응형
참고: pandas-tutorial
표기 방식 : import pandas as pd
- Import = “Bring this functionality or library to my python script”
- Pandas = The library you want to import, in this case, it’s pandas
- As = The python nomenclature for creating as alias. This is a fancy way of taking a long word and referencing it as a short word
- pd = The standard short name for referencing pandas
Pandas의 DataFrame
- 2차원 형태의 데이터를 다루기 위한 자료형
- DataFrame : 표형식의 데이터를 담는 자료형 (row/index : 레코드, column : 데이터의 특징)
- numpy array를 기반으로 만들어짐
Pandas 기초 : DataFrame 생성하기
In [81]:
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
import pandas as pd
import numpy as np
In [82]:
# DataFrame 기초
two_list = [['Kim', 30, 40], ['Lee', 10, 20], ['Ho', 3, 70]]
two_df= pd.DataFrame(two_list)
two_df
Out[82]:
0 | 1 | 2 | |
---|---|---|---|
0 | Kim | 30 | 40 |
1 | Lee | 10 | 20 |
2 | Ho | 3 | 70 |
In [83]:
two_df= pd.DataFrame(two_list, columns=['name', 'en_score', 'kr_score'],
index=['a','b','c'])
two_df
Out[83]:
name | en_score | kr_score | |
---|---|---|---|
a | Kim | 30 | 40 |
b | Lee | 10 | 20 |
c | Ho | 3 | 70 |
In [84]:
two_df.columns
Out[84]:
Index(['name', 'en_score', 'kr_score'], dtype='object')
In [85]:
two_df.index
Out[85]:
Index(['a', 'b', 'c'], dtype='object')
In [86]:
# dtypes로 각 column이 어떤 데이터 타입을 보관하는지 확인할 수 있다.
# int64 : 정수, float64 : 소수, object : 텍스트, bool : 불린(참과 거짓),
# datetime64 : 날짜와 시간, category : 카테고리
two_df.dtypes
Out[86]:
name object
en_score int64
kr_score int64
dtype: object
In [87]:
# 2차원 리스트나 2차원 numpy array, pandas Series를 담고 있는 리스트로 DataFrame을 만들 수 있다.
two_dimensional_list = [['Kim', 30, 40], ['Lee', 10, 20], ['Ho', 3, 70]]
two_dimensional_array = np.array(two_dimensional_list)
list_of_series = [
pd.Series(['Kim', 30, 40]),
pd.Series(['Lee', 10, 20]),
pd.Series(['Ho', 3, 70])
]
# 아래 셋의 결과는 모두 동일하다.
df1 = pd.DataFrame(two_dimensional_list)
df2 = pd.DataFrame(two_dimensional_array)
df3 = pd.DataFrame(list_of_series)
In [88]:
df1
Out[88]:
0 | 1 | 2 | |
---|---|---|---|
0 | Kim | 30 | 40 |
1 | Lee | 10 | 20 |
2 | Ho | 3 | 70 |
In [89]:
# 파이썬 사전(dictionary)으로도 DataFrame을 만들 수 있다.
# 사전의 key로는 column 이름을 쓰고, 그 column에 해당하는 리스트, numpy array,
# 혹은 pandas Series를 사전의 value로 넣어주면 된다.
names = ['Kim', 'Lee', 'Ho']
english_scores = [30, 10, 3]
math_scores = [40, 20, 70]
dict1 = {
'name': names,
'english_score': english_scores,
'math_score': math_scores
}
dict2 = {
'name': np.array(names),
'english_score': np.array(english_scores),
'math_score': np.array(math_scores)
}
dict3 = {
'name': pd.Series(names),
'english_score': pd.Series(english_scores),
'math_score': pd.Series(math_scores)
}
# 아래 셋은 모두 동일합니다
dc1 = pd.DataFrame(dict1)
dc2 = pd.DataFrame(dict2)
dc3 = pd.DataFrame(dict3)
In [90]:
dc1
Out[90]:
name | english_score | math_score | |
---|---|---|---|
0 | Kim | 30 | 40 |
1 | Lee | 10 | 20 |
2 | Ho | 3 | 70 |
In [91]:
# 리스트가 담긴 사전이 아니라, 사전이 담긴 리스트로도 DataFrame을 만들 수 있다.
my_list = [
{'name': 'Kim', 'english_score': 30, 'math_score': 40},
{'name': 'Lee', 'english_score': 10 , 'math_score': 20},
{'name': 'Ho', 'english_score': 3, 'math_score': 70}
]
df = pd.DataFrame(my_list)
In [92]:
df
Out[92]:
name | english_score | math_score | |
---|---|---|---|
0 | Kim | 30 | 40 |
1 | Lee | 10 | 20 |
2 | Ho | 3 | 70 |
In [93]:
# pandas로 데이터 읽어들이기
iphonedf = pd.read_csv('data/iphone.csv', index_col = 0)
# iphonedf = pd.read_csv('data/iphone.csv', header=None) : 헤더가 없는 경우
In [94]:
iphonedf
Out[94]:
출시일 | 디스플레이 | 메모리 | 출시 버전 | Face ID | |
---|---|---|---|---|---|
iPhone 7 | 2016-09-16 | 4.7 | 2GB | iOS 10.0 | No |
iPhone 7 Plus | 2016-09-16 | 5.5 | 3GB | iOS 10.0 | No |
iPhone 8 | 2017-09-22 | 4.7 | 2GB | iOS 11.0 | No |
iPhone 8 Plus | 2017-09-22 | 5.5 | 3GB | iOS 11.0 | No |
iPhone X | 2017-11-03 | 5.8 | 3GB | iOS 11.1 | Yes |
iPhone XS | 2018-09-21 | 5.8 | 4GB | iOS 12.0 | Yes |
iPhone XS Max | 2018-09-21 | 6.5 | 4GB | iOS 12.0 | Yes |
반응형
'python library' 카테고리의 다른 글
Jupyter Notebook 기본 (0) | 2021.11.18 |
---|---|
기본 지도 학습 알고리즘 : 선형 회귀(Linear Regression) (0) | 2021.11.04 |
numpy : A matrix Library in python (2차원 배열) (0) | 2021.10.28 |
numpy 기초(1차원 배열) (0) | 2021.10.28 |