반응형
DataFrame
- 표 형식의 데이터
- 2차원 형태의 데이터를 다루기 위한 자료형(대부분의 자료는 2차원 형태임)
- 행(Row/Index) : 레코드 , 열(Column) : 데이터 특징
Numpy와의 차이점
- Pandas는 Numpy를 기반으로 만들어짐
- Numpy + 행/열에 이름 붙이기 기능(문자열, 숫자 다가능 : 다양한 자료형)
Pandas vs Numpy
import pandas as pd
import numpy as np
two_dimensional_list = [['dongwook', 50, 85], ['sineui', 89, 31], ['iljoong', 68, 91], ['yoonseo', 88, 75]]
print(np.array([two_dimensional_list]))
df = pd.DataFrame(two_dimensional_list, columns=['name', 'ENG', "MATH"], index=['a', 'b', 'c', 'd'])
# print(type(df))
print(df)
# numpy 출력
[[['dongwook' '50' '85']
['sineui' '89' '31']
['iljoong' '68' '91']
['yoonseo' '88' '75']]]
# pandas 출력
name ENG MATH
a dongwook 50 85
b sineui 89 31
c iljoong 68 91
d yoonseo 88 75
Columns 변수
: 열 이름 붙이기
df = pd.DataFrame(two_dimensional_list, columns=['name', 'ENG', "MATH"])
- List에 컬림 변수 넣어줌

Index 변수
df = pd.DataFrame(two_dimensional_list, columns=['name', 'ENG', "MATH"], index=['a', 'b', 'c', 'd'])
: 행에 이름 붙이기

DataFrame 정보
같은 컬럼 내에서는 같은 자료형
print(df.columns)
print(df.index)
print(df.dtypes)

2차원 데이터 → DataFrame
list, array, 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
Dictionary Data → DataFrame
- From dict of lists, dict of arrays, dict of series
- 리스트가 담긴 사전 → DataFrame
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
'
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
Pandas의 dtype
코드
print(df.dtypes)
출력
name object
english_score int64
math_score int64
dtype: object
종류

반응형
'Python > Pandas' 카테고리의 다른 글
[Pandas] DataFrame 값 쓰기 (0) | 2023.12.31 |
---|---|
[Pandas] 숫자 인덱싱 (0) | 2023.12.30 |
[Pandas] DataFrame 인덱싱 (0) | 2023.12.29 |
[Pandas] csv 데이터 불러오기 (2) | 2023.12.27 |
[Pandas] Pandas vs R (0) | 2023.12.25 |