안녕하세요, 지난 시간에는 Pandas가 무엇인지와 Pandas 내부의 DataFrame 함수를 이용한 Data Frame을 만드는 것을 정리해 보았습니다. 이번 시간에는 다른 Data Frame을 만드는 방법을 정리해보겠습니다.
지난 시간에는 2차원 리스트를 만든 후 Pandas의 DataFrame을 이용해 만들었습니다. 아래와 같이 말이죠!
import numpy as np
import pandas as pd
two_dimensional_list = [['dongwook', 50, 86], ['sineui', 89, 31], ['ikjoong', 68, 91], ['yoonsoo', 88, 75]]
my_df = pd.DataFrame(two_dimensional_list)
위의 two_dimensional_list를 Numpy의 array함수를 이용해 이차원 배열을 만들어서 DataFrame에 넣어도 동일한 결과를 얻을 수 있습니다.
import numpy as np
import pandas as pd
two_dimensional_list = [['dongwook', 50, 86], ['sineui', 89, 31], ['ikjoong', 68, 91], ['yoonsoo', 88, 75]]
my_df1 = pd.DataFrame(two_dimensional_list)
two_dimensional_arr = np.array(two_dimensional_list)
my_df2 = pd.DataFrame(two_dimensional_arr) // my_df1과 동일한 결과를 얻을 수 있습니다!
그런데 위의 방법을 보면 굳이 np.array를 이용해서 array를 만든 후 DataFrame을 통해 만들어야 할까라는 생각이 드실 수 있으신데요, 저렇게 np.array를 이용하면 array의 특성을 사용하여 array 간의 여러 동작들을 할 수 있습니다!(배열 내 요소들에 덧셈, 곱셈 등등)
Data Frame을 만드는 다른 방법으로는 Pandas의 Series함수를 이용해 만든 1차원 ndarray 여려개를 담고 있는 리스트를 DataFrame함수를 사용하여서 만들 수 도 있습니다.
import numpy as np
import pandas as pd
//첫번째 방법 리스트를 이용해 만들기
two_dimensional_list = [['dongwook', 50, 86], ['sineui', 89, 31], ['ikjoong', 68, 91], ['yoonsoo', 88, 75]]
my_df1 = pd.DataFrame(two_dimensional_list)
//두번째 방법 리스트를 np.array를 이용해 변경 후 만들기
two_dimensional_arr = np.array(two_dimensional_list)
my_df2 = pd.DataFrame(two_dimensional_arr) // my_df1과 동일한 결과를 얻을 수 있습니다!
//세번째 방법 Series함수를 이용해 만든 1차원 ndarray를 여러개 포함한 리스트를 이용해 만들기
list_of_series = [
pd.Series(['dongwook', 50, 86]),
pd.Series(['sineui', 89, 31]),
pd.Series(['ikjoong', 68, 91]),
pd.Series(['yoonsoo', 88, 75])
]
my_df3 = pd.DataFrame(list_of_series)
여기서 끝이 아닙니다! Python을 하면서 자료형으로 배운 Dictionary를 이용해서도 DataFrame을 만들 수가 있습니다. 사전의 key로 Column 이름을 쓰고, 해당 Column에 해당하는 리스트, array, Series를 Value로 넣어 만들 수 있습니다.
import numpy as np
import pandas as pd
name = ['alex', 'hoom', 'minji']
english_score = [60, 78, 20]
math_scores = [97, 48, 100]
dict1 = {
'name': name,
'english_score': english_score,
'math_score': math_scores
}
dict2 = {
'name': np.array(name),
'english_score': np.array(english_score),
'math_score': np.array(math_scores)
}
dict3 = {
'name': pd.Series(name),
'english_score': pd.Series(english_score),
'math_score': pd.Series(math_scores)
}
# 밑의 3가지 모두 같은 Data Frame입니다
df1 = pd.DataFrame(dict1)
df2 = pd.DataFrame(dict2)
df3 = pd.DataFrame(dict3)
위의 예제는 리스트가 담긴 Dictionary를 이용하여 DataFrame을 만든 것인데요, 반대로 Dictionary가 담긴 리스트를 이용해서도 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)
이렇게 DataFrame을 만드는 방법에 대해 정리해보았습니다. 최근에 갑자기 회사의 일이 많아져서 퇴근을 하고 집에 오면 11시가 되어 공부할 시간도 줄어들고 있는데요, 못해도 2일 1포스팅을 목표로 꾸준히 공부해보겠습니다!
'Python > Data Science' 카테고리의 다른 글
DataFrame indexing (1) (0) | 2021.07.24 |
---|---|
Python - Pandas (3) (0) | 2021.07.22 |
Python - Pandas (1) (0) | 2021.07.19 |
Python - Numpy (3) (0) | 2021.07.17 |
Python - Numpy (2) (0) | 2021.07.16 |
댓글