AI실무 기본과정 - 데이터 분석을 위한 라이브러리 step 2
2021. 12. 15. 10:45ㆍProgramming/Python
[1] Series 데이터를 만드는 방법 2가지
ex)*CodeEditor
import numpy as np
import pandas as pd
# 예시) case1 시리즈 데이터를 만드는 방법.
series = pd.Series([1,2,3,4], index = ['a', 'b', 'c', 'd'], name="Title")
print(series, "\n")
# case2 국가별 인구 수 시리즈 데이터를 딕셔너리를 사용하여 만들어보세요.
dict = {
"korea" : 5180,
"japan" : 12718,
"china" : 141500,
"usa" : 32676
}
country = pd.Series(dict)
print(country)
*Console
a 1
b 2
c 3
d 4
Name: Title, dtype: int64
korea 5180
japan 12718
china 141500
usa 32676
dtype: int64
[2] Series 데이터로 DataFrame 만들기 예제
ex)*CodeEditor
import numpy as np
import pandas as pd
# 두 개의 시리즈 데이터가 있습니다.
print("Population series data:")
population_dict = {
'korea': 5180,
'japan': 12718,
'china': 141500,
'usa': 32676
}
population = pd.Series(population_dict)
print(population, "\n")
print("GDP series data:")
gdp_dict = {
'korea': 169320000,
'japan': 516700000,
'china': 1409250000,
'usa': 2041280000,
}
gdp = pd.Series(gdp_dict)
print(gdp, "\n")
# 이곳에서 2개의 시리즈 값이 들어간 데이터프레임을 생성합니다.
print("Country DataFrame")
country = pd.DataFrame({
"population": population,
"gdp" : gdp
})
print(country)
*Console
Population series data:
korea 5180
japan 12718
china 141500
usa 32676
dtype: int64
GDP series data:
korea 169320000
japan 516700000
china 1409250000
usa 2041280000
dtype: int64
Country DataFrame
population gdp
korea 5180 169320000
japan 12718 516700000
china 141500 1409250000
usa 32676 2041280000
코드 실행이 완료되었습니다.
[3] DataFrame에서 조건을 충족하는 값 추출하기 예제
ex)*CodeEditor
import numpy as np
import pandas as pd
print("Masking & query")
df = pd.DataFrame(np.random.rand(5, 2), columns=["A", "B"])
print(df, "\n")
# 데이터 프레임에서 A컬럼값이 0.5보다 작고 B컬럼 값이 0.3보다 큰값들을 구해봅시다.
# 마스킹 연산을 활용하여 출력해보세요!
print(df[df['A']<0.5])
print(df[df['B']>0.3])
print(df[(df['A']<0.5) & (df['B']>0.3)])
# query 함수를 활용하여 출력해보세요!
print(df.query("A<0.5 and B>0.3"))
*Console
Masking & query
A B
0 0.409296 0.138406
1 0.212866 0.383901
2 0.544243 0.911833
3 0.724584 0.620088
4 0.705743 0.028434
A B
0 0.409296 0.138406
1 0.212866 0.383901
A B
1 0.212866 0.383901
2 0.544243 0.911833
3 0.724584 0.620088
A B
1 0.212866 0.383901
A B
1 0.212866 0.383901
코드 실행이 완료되었습니다.
[4]DataFrame에 새로운 컬럼값 추가하기 예제
ex)*CodeEditor
import numpy as np
import pandas as pd
# GDP와 인구수 시리즈 값이 들어간 데이터프레임을 생성합니다.
population = pd.Series({'korea': 5180,'japan': 12718,'china': 141500,'usa': 32676})
gdp = pd.Series({'korea': 169320000,'japan': 516700000,'china': 1409250000,'usa': 2041280000})
print("Country DataFrame")
country = pd.DataFrame({"population" : population,"gdp" : gdp})
print(country)
# 데이터프레임에 gdp per capita 칼럼을 추가하고 출력합니다.
gdp_per_capita = country['gdp']/country['population']
country['gdp per capita'] = gdp_per_capita
print(country)
*Console
Country DataFrame
population gdp
korea 5180 169320000
japan 12718 516700000
china 141500 1409250000
usa 32676 2041280000
population gdp gdp per capita
korea 5180 169320000 32687.258687
japan 12718 516700000 40627.457147
china 141500 1409250000 9959.363958
usa 32676 2041280000 62470.314604
코드 실행이 완료되었습니다.
[1] Data in DataFrame Sort EX
ex)CodeEditor
import numpy as np
import pandas as pd
print("DataFrame: ")
df = pd.DataFrame({
'col1' : [2, 1, 9, 8, 7, 4],
'col2' : ['A', 'A', 'B', np.nan, 'D', 'C'],
'col3': [0, 1, 9, 4, 2, 3],
})
print(df, "\n")
# 정렬 코드 입력해보기
# 1. col1을 기준으로 오름차순으로 정렬하기.
sorted_df1 = df.sort_values('col1', ascending = True)
print(sorted_df1)
# 2. col2를 기준으로 내림차순으로 정렬하기.
sorted_df2 = df.sort_values('col2', ascending = False)
print(sorted_df2)
# 3. col2를 기준으로 오름차순으로, col1를 기준으로 내림차순으로 정렬하기.
sorted_df3 = df.sort_values(['col2','col1'], ascending = [True, False])
print(sorted_df3)
*Console
DataFrame:
col1 col2 col3
0 2 A 0
1 1 A 1
2 9 B 9
3 8 NaN 4
4 7 D 2
5 4 C 3
col1 col2 col3
1 1 A 1
0 2 A 0
5 4 C 3
4 7 D 2
3 8 NaN 4
2 9 B 9
col1 col2 col3
4 7 D 2
5 4 C 3
2 9 B 9
0 2 A 0
1 1 A 1
3 8 NaN 4
col1 col2 col3
0 2 A 0
1 1 A 1
2 9 B 9
5 4 C 3
4 7 D 2
3 8 NaN 4
코드 실행이 완료되었습니다.
[2] DataFrame 값 집계함수를 사용해서 도출하기
ex)CodeEditor
import numpy as np
import pandas as pd
data = {
'korean' : [50, 60, 70],
'math' : [10, np.nan, 40]
}
df = pd.DataFrame(data, index = ['a','b','c'])
print(df, "\n")
# 각 컬럼별 데이터 개수
col_num = df.count(axis = 0)
print(col_num, "\n")
# 각 행별 데이터 개수
row_num = df.count(axis = 1)
print(row_num, "\n")
# 각 컬럼별 최댓값
col_max = df.max()
print(col_max, "\n")
# 각 컬럼별 최솟값
col_min = df.min()
print(col_min, "\n")
# 각 컬럼별 합계
col_sum = df.sum()
print(col_sum, "\n")
# 컬럼의 최솟값으로 NaN값 대체
math_min = df['math'].min()
df['math'] = df['math'].fillna(math_min)
print(df, "\n")
# 각 컬럼별 평균
col_avg = df.mean()
print(col_avg, "\n")
*Console
korean math
a 50 10.0
b 60 NaN
c 70 40.0
korean 3
math 2
dtype: int64
a 2
b 1
c 2
dtype: int64
korean 70.0
math 40.0
dtype: float64
korean 50.0
math 10.0
dtype: float64
korean 180.0
math 50.0
dtype: float64
korean math
a 50 10.0
b 60 10.0
c 70 40.0
korean 60.0
math 20.0
dtype: float64
코드 실행이 완료되었습니다.
[3]DataFrame Groupping 해서 도출
ex)*CodeEditor
import numpy as np
import pandas as pd
df = pd.DataFrame({
'key': ['A', 'B', 'C', 'A', 'B', 'C'],
'data1': [1, 2, 3, 1, 2, 3],
'data2': [4, 4, 6, 0, 6, 1]
})
print("DataFrame:")
print(df, "\n")
# groupby 함수를 이용해봅시다.
# key를 기준으로 묶어 합계를 구해 출력해보세요.
print(df.groupby('key').sum())
# key와 data1을 기준으로 묶어 합계를 구해 출력해보세요.
print(df.groupby(['key', 'data1']).sum())
*Console
DataFrame:
key data1 data2
0 A 1 4
1 B 2 4
2 C 3 6
3 A 1 0
4 B 2 6
5 C 3 1
data1 data2
key
A 2 4
B 4 10
C 6 7
data2
key data1
A 1 4
B 2 10
C 3 7
코드 실행이 완료되었습니다.
[4] GroupBy, aggregate 응용
ex)*CodeEditor
import numpy as np
import pandas as pd
df = pd.DataFrame({
'key': ['A', 'B', 'C', 'A', 'B', 'C'],
'data1': [0, 1, 2, 3, 4, 5],
'data2': [4, 4, 6, 0, 6, 1]
})
print("DataFrame:")
print(df, "\n")
# aggregate를 이용하여 요약 통계량을 산출해봅시다.
# 데이터 프레임을 'key' 칼럼으로 묶고, data1과 data2 각각의 최솟값, 중앙값, 최댓값을 출력하세요.
print(df.groupby('key').aggregate([min, np.median, max]))
# 데이터 프레임을 'key' 칼럼으로 묶고, data1의 최솟값, data2의 합계를 출력하세요.
print(df.groupby('key').aggregate({'data1':min, 'data2':sum}))
*Console
DataFrame:
key data1 data2
0 A 0 4
1 B 1 4
2 C 2 6
3 A 3 0
4 B 4 6
5 C 5 1
data1 data2
min median max min median max
key
A 0 1.5 3 0 2.0 4
B 1 2.5 4 4 5.0 6
C 2 3.5 5 1 3.5 6
data1 data2
key
A 0 4
B 1 10
C 2 7
코드 실행이 완료되었습니다.
'Programming > Python' 카테고리의 다른 글
AI실무 기본과정 - 데이터 분석을 위한 라이브러리 step 3 (0) | 2021.12.16 |
---|---|
AI실무 기본과정 - 데이터 분석을 위한 라이브러리 step 1 (0) | 2021.12.14 |
AI실무 기본과정 - 핵심 파이썬 기초 프로그래밍 step 3 (0) | 2021.12.14 |
AI실무 기본과정 - 핵심 파이썬 기초 프로그래밍 step 2 (0) | 2021.12.10 |
AI실무 기본과정 - 핵심 파이썬 기초 프로그래밍 step 1 (0) | 2021.12.09 |