panel data - 격자무늬로 데이터가 들어가 있는 모습
##주요특성
-인덱싱을 활용하여 데이터 조작이 가능한 DataFrame 객체가 존재
-데이터 컬럼의 추가 삭제 수정
-데이터 간의 분할 병합
-다수의 Series가 모여 DataFrame을 이룹니다
-index value 구성
-DataFrame을 구성하는 하위 요소
# 시리즈 생성
# pd.Series(배열/ 리스트)
series1 = pd.Series([10,20,30])
series1
#인덱스 미 지정시 0~ 숫자 생성
#인덱스 지정하여 시리즈 생성
series2 = pd.Series([10,20,30] , index = ['a','b','c'] )
series2
# k : v -> 딕셔너리
# 인덱스 지정하여 시리즈 생성 2
series3 = pd.Series({'a' : 10, 'b' : 20, 'c' : 30})
series3
* 시리즈 인덱싱
* 시리즈 인덱스 값이 정해져 있는 경우는 숫자가 아닌 인덱스 값으로
접근
#시리즈 값 추가
series3['d'] = 100
series
#시리즈 값 삭제
# .drop()
series3 = series3.drop('a')
# pd.DataFrame(배열/리스트)
df1 = pd.DataFrame([1,2,3])
//
0
0 1
1 2
2 3
df2 = pd.DataFrame([[1,2,3],[10,20,30]])
//
0 1 2
0 1 2 3
1 10 20 30
df3 = pd.DataFrame([['a',10],['b',20],['3',30]], columns = ['hello','world'])
//
hello world
0 a 10
1 b 20
2 3 30
# 인덱스 명 지정 (, index = [])
df3 = pd.DataFrame([['a',10],['b',20],['3',30]], columns = ['hello','world'], index=['kim', 'lee', 'park'])
# 컬럼을 바로 지정하는 방법 - 딕셔너리 구조
df4 = pd.DataFrame({'hello' : [1,2,3,4,5] , 'world' : [10,20,30,40,50]})
//
hello world
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50
df5 = pd.DataFrame({'키':[175.3,180.2,178.6],'몸무게':[66.2,78.9,55.1],'나이':[27.0,49.0,35.0], '이름' : ['son','kim','park']})
df5
//
키 몸무게 나이 이름
0 175.3 66.2 27.0 son
1 180.2 78.9 49.0 kim
2 178.6 55.1 35.0 park
# 인덱싱
# 1. 컬럼명 작성
# 2. 해당 컬럼만 시리즈 형식으로 가지고 옴
df5['키']
1. loc : 실제로 보이는 인덱스/컬렴 명을 통해 데이터 접근
df5.loc[:]
//
키 몸무게 나이
이름
son 175.3 66.2 27.0
kim 180.2 78.9 49.0
park 178.6 55.1 35.0
2. iloc : 인덱스 번호로 접근
df5.iloc[:]
# 슬라이싱 행, 열 구분
print(df5.loc["son":"kim"])
* loc 데이터 슬라이싱 >> 이름으로 접근 시 마지막 데이터는 포함
display(df5.loc[:,:])
//
키 몸무게 나이
이름
son 175.3 66.2 27.0
kim 180.2 78.9 49.0
park 178.6 55.1 35.0
display(df5.loc['son':'kim','키':'몸무게'])
키 몸무게
이름
son 175.3 66.2
kim 180.2 78.9
* iloc 데이터 슬라이싱 >> 번호로 접근 시 마지막 번호는 포함 X
display(df5.iloc[:,:])
//
키 몸무게 나이
이름
son 175.3 66.2 27.0
kim 180.2 78.9 49.0
park 178.6 55.1 35.0
display(df5.iloc[:2,:])
//
키 몸무게 나이
이름
son 175.3 66.2 27.0
kim 180.2 78.9 49.0
display(df5.iloc[:2,1:])
//
몸무게 나이
이름
son 66.2 27.0
kim 78.9 49.0
# 불리언 인덱싱
df5['키'] > 180
//
이름
son False
kim True
park False
Name: 키, dtype: bool
df5[df5['키'] > 180] == df5.query('키>180')
//
키 몸무게 나이
이름
kim 180.2 78.9 49.0
mpg = pd.read_csv('data/mpg.csv')

.head(개수)
.tail()
.info()
.describe()
.copy()
.rename()