๊ต์ก๊ณผ์ ์์ ์ด์ ๋จธ์ ๋ฌ๋์ ๋ฐฐ์ฐ๊ธฐ ์์ํ๋๋ฐ Pandas์ ๋ํด ์ ๋ฆฌํ๊ณ ์ถ์ด์ ๋จ๊ธฐ๋ ๊ธ
Pandas
numpy
๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ํจ๊ป import
import pandas as pd
Series
Numpy
์ 1์ฐจ์ array์ ๋น์ทํ๋ค.x = [1, 2, 3, 4, 5]
pd.Series(x)
0 1 1 2 2 3 3 4 4 5 dtype: int64
์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ์์
์ํธ์ ์ด ํ๊ฐ์ ๋น์ทํ๋ค.
๋ํ์ด ๋ฆฌ์คํธ๋ก๋ ์๋ฆฌ์ฆ๋ฅผ ์์ฑํ ์ ์๋ค.
index
์ value
๋ก ๊ตฌ๋ถ๋์ด ์๋ค.x = [1, 2, 3, 4, 5]
x = pd.Series(x)
print(x.index)
print(x.values)
RangeIndex(start=0, stop=5, step=1) [1 2 3 4 5]
list(x.index)
๋ก print
ํ๋ฉด ์ธ๋ฑ์ค๊ฐ [0, 1, 2, 3, 4]
๋ก ์ถ๋ ฅ๋๋ค.
x = [1, 2, 3, 4, 5]
x = pd.Series(x, index=['a','b','c','d','e']) #์ธ๋ฑ์ค์ค์
print(x['a']) #๋ช
์์ ์ธ๋ฑ์ค์ ๊ทผ
print(x[0]) #๋ฌต์์ ์ธ๋ฑ์ค์ ๊ทผ
print(x[['a','e']]) #ํฌ์์์ธ, ํ๋ฒ์ ์ฌ๋ฌ๊ฐ ์ ๊ทผ
print(x.a) # ์์ฑ๊ฐ ์ ๊ทผํ๋ฏ์ด ์ ๊ทผํ ์ ์์
1 1 a 1 e 5 dtype: int64 1
.iloc
๊ณผ .loc
์ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค!x = [1, 2, 3, 4, 5]
x = pd.Series(x, index=[1, 2, 3, 4, 5])
print(x)
# x[0] ์ค๋ฅ(์ธ๋ฑ์ค๊ฐ ์ซ์๋ผ์ ๋ฌต์์ ์ธ๋ฑ์ค ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํจ)
print(x.iloc[0]) #๋ฌต์์ ์ธ๋ฑ์ค๋ก๋ง
print(x.loc[1]) #๋ช
์์ ์ธ๋ฑ์ค๋ก๋ง
1 1 2 2 3 3 4 4 5 5 dtype: int64 1 1
key
๊ฐ์ index
๋ก ์ฌ์ฉํ๋ค.x = {"์ํ":90, "์์ด":80, "๊ณผํ":95, "๋ฏธ์ ":80}
x = pd.Series(x)
x
์ํ 90 ์์ด 80 ๊ณผํ 95 ๋ฏธ์ 80 dtype: int64
print(x['์ํ']) # ์ถ๋ ฅ: 90
print(x['์์ด':])
์์ด 80 ๊ณผํ 95 ๋ฏธ์ 80 dtype: int64
x = {"์ํ":90, "์์ด":80, "๊ณผํ":95, "๋ฏธ์ ":80}
x = pd.Series(x, index=["์ํ", "์์ด", "๊ณผํ"])
x
์ํ 90 ์์ด 80 ๊ณผํ 95 dtype: int64
student_1 = {"์ํ":90, "์์ด":80, "๊ณผํ":95, "๋ฏธ์ ":80}
student_2 = {"์ํ":70, "์์ด":90, "๊ณผํ":100, "๋ฏธ์ ":70}
#index_1 = ['ํ๊ธธ๋','ํ๊ธธ๋','ํ๊ธธ๋','ํ๊ธธ๋','์ด๋ชฝ๋ฃก','์ด๋ชฝ๋ฃก','์ด๋ชฝ๋ฃก','์ด๋ชฝ๋ฃก']
index_1 = ['ํ๊ธธ๋' for i in range(len(student_1))] + ['์ด๋ชฝ๋ฃก' for i in range(len(student_2))]
#index_2 = ['์ํ','์์ด','๊ณผํ','๋ฏธ์ ','์ํ','์์ด','๊ณผํ','๋ฏธ์ ']
index_2 = [key for key in student_1] + [key for key in student_2] # key๋ฅผ ๋ถ๋ฌ์ด
value_all = list(student_1.values()) + list(student_2.values())
students = pd.Series(value_all, index=[index_1, index_2]) # ์์ ์ธ๋ฑ์ค๋ ํ์ ์ธ๋ฑ์ค
students
ํ๊ธธ๋ ์ํ 90 ์์ด 80 ๊ณผํ 95 ๋ฏธ์ 80 ์ด๋ชฝ๋ฃก ์ํ 70 ์์ด 90 ๊ณผํ 100 ๋ฏธ์ 70 dtype: int64
students['ํ๊ธธ๋']
์ ๊ฒฝ์ฐ ํ๊ธธ๋์ ํด๋นํ๋ ์ ์๋ค๋ง ์ถ๋ ฅํด์ค๋ค.์ํ 90 ์์ด 80 ๊ณผํ 95 ๋ฏธ์ 80 dtype: int64
DataFrame
sales_data = {
'์ฐ๋':[2015, 2016, 2017, 2018, 2019, 2020],
'ํ๋งค๋':[103, 70, 130, 160, 190, 230],
'๋งค์ถ':[500000, 300000, 400000, 550000, 700000, 680000],
'์์ด์ต':[370000, 190000, 300000, 480000, 600000, 590000]
}
sales_data = pd.DataFrame(sales_data)
sales_data
(๋ฒจ๋ก๊ทธ์์ ๋ฐ์ดํฐํ๋ ์์ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์..)
sales_data = {
'์ฐ๋':[2015, 2016, 2017, 2018, 2019, 2020],
'ํ๋งค๋':[103, 70, 130, 160, 190, 230],
'๋งค์ถ':[500000, 300000, 400000, 550000, 700000, 680000],
'์์ด์ต':[370000, 190000, 300000, 480000, 600000, 590000]
}
temp_df = pd.DataFrame(sales_data, columns=['ํ๋งค๋','๋งค์ถ','์์ด์ต'], index=sales_data['์ฐ๋'])
temp_df
์ธ๋ฑ์ค๋ฅผ ๋ฐ๋ก ์ง์ ํด์ค ์๋ ์๋ค.
.loc
, .iloc
์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. pd.read_csv
๊ฐ ๊ฐ์ฅ ๋ง์ด ์ฐ์)sales_data = pd.read_csv('sales_data.csv', index_col='์ฐ๋', header=0, sep=',')
sales_data
์ด๋ฐ์์ผ๋ก..
ํ๋ค์ค์ ์๋ฃ๊ตฌ์กฐ์ธ Series์ DataFrame์ ์์๋ณด์๋ค. ๋ค์์๋ Kaggle์ ํ์ดํ๋ ์์กด์ ๋ฐ์ดํฐ๋ก ํ๋ค์ค๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๋ค์ ๋ํด ์ ๋ฆฌํ ๊ฒ์ด๋ค!!!!!!