728x90
▶ 판다스
시리즈는 일차원 배열, 데이터프레임은 2차원 배열
시리즈를 합쳐서 데이터 프레임을 만들 수 있다.
import pandas as pd 로 불러온다.
#판다스, 데이터 프레임 생성
s = pd.Series([9904312,3454845,2351565,1425362],
index = ['서울','부산','인천','대구'])
▶ 표이름, 인덱스이름 설정
s.name='인구 분석' #표이름
s.index.name = '도시' #인덱스 이름
print(s)
print(s.name)
print(s.index.name)
실행결과 ↓
도시
서울 9904312
부산 3454845
인천 2351565
대구 1425362
Name: 인구 분석, dtype: int64
인구 분석
도시
▶ 데이터프레임 연산
s / 1000000
#s값이 수치이므로 1000000으로 나눈 값으로 출력됨 (연산가능)
▶ 시리즈 슬라이싱
s # 시리즈는 기본적으로 넘파이 배열이기 때문에 인덱스(숫자)로도 슬라이싱 가능하고 인덱스의 값으로도 가능.
print(s[1])
print( s['부산'])
print(s[3])
print(s['대구'])
실핼결과 ↓
3454845
3454845
1425362
1425362
▶ 특정열만 슬라이싱
s[[0,3,1]]
실핼결과 ↓
도시
서울 9904312
대구 1425362
부산 3454845
Name: 인구 분석, dtype: int64
250e4 =
2500000.0
▶ 특정 값 기준으로 슬라이싱
s[(250e4<s) & (s <500e4)] #인구가 250만 초과, 500만 미만인 경우
도시
부산 3454845
Name: 인구 분석, dtype: int64
# 시리즈는 딕셔너리와 비슷
# 라벨값에 의ㅐ해 인덱싱이 가능라므로 실질적으로 인덱스 라벨 값을 키로 가지는 딕셔너리와 비슷
# 시리즈는 기본덕으로 넘파이 기반이지만 딕셔너리 구조로 이루엊져 잇어
▶ 값이 있는지 확인
"서울" in s
▶ 데이터프레임 키, 값 출력 1
for data in s.items():
print(data)
('서울', 9904312)
('부산', 3454845)
('인천', 2351565)
('대구', 1425362)
▶ 데이터프레임 키, 값 출력 2
for k,v in s.items():
print("%s = %d" %(k,v))
서울 = 9904312
부산 = 3454845
인천 = 2351565
대구 = 1425362
▶ 딕셔너리로 만든것과 indes지정해서 만든것의 차이점
s2 = pd.Series({"서울":9631482, "부산":3393191, "인천":2632035,"대전":1490158})
s2
s2 = pd.Series({"서울":9631482, "부산":3393191, "인천":2632035,"대전":1490158},
index = ['부산','서울','인천','대전'])
s2
서울 9631482
부산 3393191
인천 2632035
대전 1490158
dtype: int64
부산 3393191
서울 9631482
인천 2632035
대전 1490158
dtype: int64
▶ notnull()
ds = s-s2
ds
ds.notnull()
ds[ds.notnull()]
실행결과↓
대구 NaN
대전 NaN
부산 55546.0
서울 272830.0
인천 258416.0
dtype: float64
대구 False
대전 False
부산 True
서울 True
인천 True
dtype: bool
부산 55546.0
서울 272830.0
인천 258416.0
dtype: float64
인구증가율 보기
rs = (s-s2)/s2*100
rs = rs[rs.notnull()]
rs
부산 1.636984
서울 2.832690
인천 9.818107
dtype: float64
▶ 값 변경
rs['부산'] = 1.63
rs
부산 1.630000
서울 2.832690
인천 9.818107
dtype: float64
▶ 값 추가
rs['대구'] = 1.41
rs
부산 1.630000
서울 2.832690
인천 9.818107
대구 1.410000
dtype: float64
▶ 값 삭제
del rs["서울"]
rs
부산 1.630000
인천 9.818107
대구 1.410000
dtype: float64
▶ 데이터프레임 연산
a= pd.Series([1,2,3],index = ['일','이','삼'])
b= pd.Series([1,2,5],index = ['일','이','오'])
print(a,b)
aa= pd.Series({'A':10,'B':20,'C':30})
bb= pd.Series({'B':5,'C':15,'D':25})
print(aa,bb)
▶ 리스트를 사용하여 데이터프레임 생성
data = [['John',28,'Male'],
['Kate',23,'Female'],
['David',31,'Male'],
['Emily',27,'Female']]
columns = ["Name",'Age','Dender']
df = pd.DataFrame(data,columns=columns)
print(df)
Name Age Dender
0 John 28 Male
1 Kate 23 Female
2 David 31 Male
3 Emily 27 Female
▶ values, columns,index 확인하
print(df.values)
print(df.columns)
print(df.index)
[['John' 28 'Male']
['Kate' 23 'Female']
['David' 31 'Male']
['Emily' 27 'Female']]
Index(['Name', 'Age', 'Dender'], dtype='object')
RangeIndex(start=0, stop=4, step=1)
▶ 데이터프레임 슬라이싱
print(df['Name'])
0 John
1 Kate
2 David
3 Emily
Name: Name, dtype: object
print(df['Name'][0])
John
▶ 컬럼 미작성시 0,1,2,...로 설정됨
data0 = [['John',28,'Male'],
['Kate',23,'Female'],
['David',31,'Male'],
['Emily',27,'Female']]
df0 = pd.DataFrame(data0)
print(df0)
print(data0[0])
0 1 2
0 John 28 Male
1 Kate 23 Female
2 David 31 Male
3 Emily 27 Female
['John', 28, 'Male']
▶ 인덱스와 컬럼에 이름 붙이기
df.index.name = '도시'
df.columns.name = '특성'
df
▶ 평균 컬럼 추가하기
data = {
"이름": ["홍길동", "전우치", "심청이", "철수", "영희"],
"국어": [95, 90, 85, 93, 87],
"영어": [90, 87, 93, 94, 89],
"수학": [73, 95, 87, 89, 93],
}
columns = ["이름", "국어", "영어", "수학"]
index = ["1번", "2번", "3번", "4번", "5번"]
df_ex = pd.DataFrame(data, index=index, columns=columns)
print(df_ex)
print()
df_ex['평균'] = (df_ex['국어'] + df_ex['영어'] +df_ex['수학'])/3
print(df_ex)
이름 국어 영어 수학
1번 홍길동 95 90 73
2번 전우치 90 87 95
3번 심청이 85 93 87
4번 철수 93 94 89
5번 영희 87 89 93
이름 국어 영어 수학 평균
1번 홍길동 95 90 73 86.000000
2번 전우치 90 87 95 90.666667
3번 심청이 85 93 87 88.333333
4번 철수 93 94 89 92.000000
5번 영희 87 89 93 89.666667
▶ 2005-2010 증가율 이라는 이름의 열 추가
df["2005-2010 증가율"] = ((df["2010"]-df["2005"]) / df["2005"]*100).round(2)
df
728x90
'• 패스트캠퍼스 데이터분석 부트캠프 12기' 카테고리의 다른 글
4.데이터 분석가 필수 ToolSQL(이준희 강사님)_OT (1) | 2024.01.26 |
---|---|
3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_15 (0) | 2024.01.15 |
3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_13 (1) | 2024.01.15 |
[패스트캠퍼스] 데이터분석 부트캠프12기 학습일지_04 (1) | 2024.01.14 |
3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_12 (0) | 2024.01.14 |