4-2. pandas_dataframe
dataframe 사용
1. pandas dataframe 생성하고 출력
- 출력값에서 우리가 넣어주지 않은 0 1 2 가 행, 열에 존재한다.
=> 우리가 column, row 의 이름을 정해주지 않았기 때문에
pandas dataframe 에서 임의로 이름을 붙여준 것
2. 위에 생성한 데이터프레임의 자료형 확인
3. column, row 이름 정해주기
4. index / column 화긴
- numpy 와 다르게 데이터의 각 자료형들이 모두 동일하지 않음을 확인할 수 있다.
=> pandas 의 장점
- 하지만 같은 column 내에서는 자료형이 같아야 한다.
5. From list of lists, array of arrays, list of series
- 이차원 리스트 / 이차원 numpy array 로 dataframe 만들기
- pandas series 를 담고 있는 리스트로 dataframe 만들기
import numpy as np
import pandas as pd
two_dimensional_list = [['dongwook', 50, 86], ['sineui', 89, 31], ['ikjoong', 68, 91], ['yoonsoo', 88, 75]]
two_dimensional_array = np.array(two_dimensional_list)
list_of_series = [
pd.Series(['dongwook', 50, 86]),
pd.Series(['sineui', 89, 31]),
pd.Series(['ikjoong', 68, 91]),
pd.Series(['yoonsoo', 88, 75])
]
# 아래 셋은 모두 동일합니다
df1 = pd.DataFrame(two_dimensional_list)
df2 = pd.DataFrame(two_dimensional_array)
df3 = pd.DataFrame(list_of_series)
print(df1)
0 1 2
0 dongwook 50 86
1 sineui 89 31
2 ikjoong 68 91
3 yoonsoo 88 75
6. from dict of lists, dict of arrays, dict of series
- 파이썬 사전 (dictionary) 로 dataframe 만들기
- 사전의 key 로 column 이름을 사용하고
- 그 column 에 해당하는 리스트, numpy array, 혹은 pandas series 를 사전의 value 로 넣어준다.
import numpy as np
import pandas as pd
names = ['dongwook', 'sineui', 'ikjoong', 'yoonsoo']
english_scores = [50, 89, 68, 88]
math_scores = [86, 31, 91, 75]
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)
}
# 아래 셋은 모두 동일합니다
df1 = pd.DataFrame(dict1)
df2 = pd.DataFrame(dict2)
df3 = pd.DataFrame(dict3)
print(df1)
name english_score math_score
0 dongwook 50 86
1 sineui 89 31
2 ikjoong 68 91
3 yoonsoo 88 75
7. from list of dicts
- 리스트가 담긴 사전이 아니라
- 사전이 담긴 리스트로 dataframe 만들기
import numpy as np
import pandas as pd
my_list = [
{'name': 'dongwook', 'english_score': 50, 'math_score': 86},
{'name': 'sineui', 'english_score': 89, 'math_score': 31},
{'name': 'ikjoong', 'english_score': 68, 'math_score': 91},
{'name': 'yoonsoo', 'english_score': 88, 'math_score': 75}
]
df = pd.DataFrame(my_list)
print(df)
english_score math_score name
0 50 86 dongwook
1 89 31 sineui
2 68 91 ikjoong
3 88 75 yoonsoo