반응형
R과 파이썬
R의 데이터 보관, 정리, 분석을 담당하는 것이 DataFrame인데
이 기능을 Python의 Pandas Library가 가져옴
Numpy vs Pandas
넘파이 | 판다스의 DataFrame |
numpy를 기반으로 제작됨 numpy기능 + 데이터 정리, 분석 + 외부데이터 읽고쓰기 + 시각화 |
|
1차원, 2차원 | 2차원 형태의 데이터를 다루기 위한 자료형 |
표형식의 데이터를 담는 자료형 | |
숫자인덱스로 값을 찾음 테이블의 모든 값이 같아야함 (주로 숫자로함) |
숫자인덱스가 아닌 행,열에 붙여진 이름으로 값을 찾을 수 있음. 문자열 혹은 숫자로 보관하고 싶은 것을 구분해서 담을 수 있음 |
2차원 넘파이 : 한 테이블의 모든 값의 타입이 같아야함 넘파이는 주로 숫자위주 |
한 테이블에 다양한 자료를 담을 수 있음 단, 각 칼럼의 요소는 동일한 타입만 가능 |
Numpy의 2차원 배열과 Pandas랑 뭐가 다르지?
1. 설치 기반
pandas library를 사용하려면 numpy가 설치되어 있어야한다.
2. 데이터 타입이 다름
numpy Array는 테이블의 모든 데이터 값이 동일해야함 (주로 숫자 타입)
pandas DataFrame은 원하는 타입으로 작성이 가능 (단, 한 칼럼의 값들은 동일한 타입)
DataFrame이란?
2차원 형태의 데이터를 다루기 위한 자료형
행, 열로 구성된 표형식의 데이터를 담는 자료형
칼럼은 데이터의 특징을 의미함.
각 칼럼의 이름으로 데이터의 특징명을 알 수 있음.
DataFrame을 만드는 4가지 방법
1. 2차원 리스트, 2차원 numpy array로 DataFrame 만들 수 있음.
> 2차원 리스트
import pandas as pd
two_dimensional_list = [['dongwook', 50, 86], ['sineui', 89, 31], ['ikjoong', 68, 91], ['yoonsoo', 88, 75]]
> 2차원 리스트를 DataFrame화 시키기
> Column에 이름 넣어주기
칼럼명만 출력해보자
my_df.columns
행이름만 출력해보자
my_df.index
각 칼럼의 자료형을 출력해보자
obejct는 문자열
int64는 숫자
2. pandas Series를 담고 있는 리스트로도 DataFrame을 만들 수 있습니다.
list, array, series => pd.DataFrame으로 수정
import numpy as np
import pandas as pd
# 2차원 리스트로 DF 만들기
two_dimensional_list = [['dongwook', 50, 86], ['sineui', 89, 31], ['ikjoong', 68, 91], ['yoonsoo', 88, 75]]
# 2차원 리스트를 np.array를 통해 DF 만들기
two_dimensional_array = np.array(two_dimensional_list)
# series데이터로 DF만들기
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)
3. 파이썬 사전(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)
4. 리스트가 담긴 사전이 아니라, 사전이 담긴 리스트로도 DataFrame을 만들 수 있습니다.
행 : 인덱스, row, record
열 : 칼럼, 데이터의 특징, 속성
반응형
'● 인공지능, 분석 > 21.07 코드잇_DS과정' 카테고리의 다른 글
3-4. DataFrame 실전 | DataFrame으로 파일 출력하기 (0) | 2021.09.10 |
---|---|
3-3. DataFrame 이론 | pandas의 데이터 타입 (0) | 2021.09.09 |
3-2. DataFrame 실전 | 리스트로 되어 있는 이름, 생일, 직업을 df로 변환하기 (0) | 2021.05.31 |
2-2. Numpy 실전 | numpy array에 곱셉연산. Boolean연산 (0) | 2021.05.29 |
2-1. Numpy 이론 | 넘파이배열과 파이썬 리스트의 차이점, 평균▪중간값 등등 (0) | 2021.05.29 |