파이썬 : 데이터 형식(&Pandas 데이터)
튜플(tuple)
튜플은 데이터를 괄호( "( )" )로 둘러싼다. 보통 아래와 같이 쓰인다.
tuple1 = ()
tuple2 = (1, 2, 3, 4)
튜플은 튜플 속의 요소들을 변경할 수 없다는 점에서 리스트(list) 형식과 구분된다. 하지만 어차피 프로그램 한 번 돌려서 SQL Database 나 Excel 에 저장해 두고 그것을 다시 불러와서 작업하는 형태이기 때문에 요소들을 변경할 수 없다는 점이 무슨 쓰임이 있는지는 모르겠다.
리스트(list)
리스트는 데이터를 대괄호( "[ ]" )로 둘러싼다. 보통 아래와 같이 쓰인다.
list1 = []
list2 = [1, 2, 3, 4]
list3 = [[1, 2, 3, 4],[1, 2, 3, 4]]
리스트의 특징은 튜플과 다르게 요소들을 변경할 수 있다는 점이다. ( 그냥 데이터 작업할 때 튜플 쓰지말고 리스트 쓰면 된다는 뜻이다. ) 하지만 리스트라는 데이터 형식에서 가장 중요한 것은 위 코드의 list3이 matrix를 의미한다는 뜻이다. 위 list3을 다시쓰면 아래와 같다.
1 | 2 | 3 | 4 |
1 | 2 | 3 | 4 |
즉, 리스트 데이터 형식에서 시작에서 엑셀 혹은 SQL DB 모양으로 데이터를 만들어 나갈 수 있는 것이다.
딕셔너리(dict)
리스트랑 똑같은데 요소 하나하나에 key 값이 붙어있는 것이라고 생각하면 되며, Key와 Value 한쌍으로 요소를 이루며, 중괄호( "{ }" )로 둘러싼다.
dictionary1 = {Key:1, Key1:2, Key3:3, Key4:4 ...}
dictionary2 = {'CJ':'105,000', 'KB금융':'54,000', 'KCC':'338,500', 'nhn':'82,100' ...}
각 요소는 콤마(" , ")로 구분되고, 키값과 Value값은 세미코론(" : ")으로 구분된다.
Pandas Data
Series
Series 는 위에 제시된 튜플, 리스트, 딕셔너리 데이터 요소에 인덱싱을 해주는 pandas 가 가진 함수이자 데이터 형태라고 보면 된다.
import pandas as pd
tuple2 = (1, 2, 3, 4)
series_tuple = pd.Series(tuple2)
print(series_tuple)
list2 = [1, 2, 3, 4]
series_list = pd.Series(list2)
print(series_list)
dictionary2 = {'CJ':'105,000', 'KB금융':'54,000', 'KCC':'338,500', 'nhn':'82,100'}
dict_list = pd.Series(dictionary2)
print(dict_list)
위 코드를 실행시켜 보면 딱히 Key 값을 설정하지 않은 tuple 이나 list 에는 0 ~ 3 까지의 key 값이 따라서 print 될 것이고, dictionary2 에서는 원레 설정한 key 값과 함께 그에 대응되는 value 값이 같이 print 되는 것을 확인할 수 있다.
DataFrame
한 줄로 쭉 늘여진 데이터를 가로세로 GRID 에 맞춰서 쭉 펴 주는 기능을 하는 pandas 함수이자 데이터 형태라고 보면 된다.
import pandas as pd
list2_1 = [[1, 2, 3, 4], [11, 12, 13, 14], [21, 22, 23, 24], [31, 32, 33, 34]]
df_list = pd.DataFrame(list2_1)
print(df_list)
dictionary2_1 = {'CJ':['001040','KOSPI','105,000'], \
'KB금융':['105560','KOSPI','54,000'], \
'KCC':['002380','KOSPI','338,500'],\
'nhn':['181710','KOSPI','82,100']}
df_dict = pd.DataFrame(dictionary2_1)
print(df_dict)
여기서 주목할 점은 list 데이터를 DataFrame 에 넣을 때는 아래 결과와 같이 행(Row)이 추가되는 형식으로 DataFrame이 만들어지고,
# print(df_list) 의 결과
0 1 2 3
0 1 2 3 4
1 11 12 13 14
2 21 22 23 24
3 31 32 33 34
dictionary 데이터를 DataFrame 에 넣을 때는 아래 결과와 같이 열(Column)이 추가되는 형식으로 DataFrame이 만들어 진다는 점이다.
# prind(df_dict) 결과
CJ KB금융 KCC nhn
0 001040 105560 002380 181710
1 KOSPI KOSPI KOSPI KOSPI
2 105,000 54,000 338,500 82,100