!pip install pandas
import pandas as pd
# Series ์์
s = pd.Series([10, 20, 30])
print(s)
# DataFrame ์์
data = {
'์ด๋ฆ': ['์ฒ ์', '์ํฌ', '๋ฏผ์'],
'๋์ด': [10, 12, 11]
}
df = pd.DataFrame(data)
print(df)
df = pd.read_csv('ํ์ผ์ด๋ฆ.csv') # ํ์ผ์ด .xlsx๋ผ๋ฉด ๋ฑ์คํธ๊ธฐ๋ฐ๋ฒ์ ๋ณดํต .csv๋ง์ด์ฌ์ฉ
print(df)
df.head() # ์ฒ์ 5ํ
df.tail() # ๋ง์ง๋ง 5ํ
df.info() # ๋ฐ์ดํฐ ํ์
๊ณผ ๊ฒฐ์ธก์น ํ์ธ
df.describe() # ์ซ์ ๋ฐ์ดํฐ ์์ฝ ํต๊ณ
df['๊ตญ์ด'] # ํน์ ์ด๋ง ๋ณด๊ธฐ -> Series(1์ฐจ์๋ฐ์ดํฐ)
df[['๊ตญ์ด', '์ํ']] # ์ฌ๋ฌ ์ด ๋ณด๊ธฐ -> DataFrame(2์ฐจ์๋ฐ์ดํฐ)
import pandas as pd
data = {
'์ด๋ฆ': ['์ฒ ์', '์ํฌ', '๋ฏผ์', '์ง๋ฏผ'],
'๊ตญ์ด': [90, 80, 85, 95],
'์ํ': [88, 92, 79, 100]
}
df = pd.read_csv(data)
print(df)
# ์ํ์ ์๊ฐ 90์ ์ด์์ธ ํ์๋ง ๋ณด๊ธฐ
df[df['์ํ'] >= 90 ]
# ๊ตญ์ด์ ์๊ฐ 85์ ๋ฏธ๋ง์ธ ํ์ ๋ณด๊ธฐ
df[df['๊ตญ์ด'] < 85 ]
df['์ํ'] >= 90
# ์ด๋ ๊ฒ๋ง ์ถ๋ ฅํ๋ฉด
# ๋๊ฐ ์กฐ๊ฑด์ ๋ง๋์ง ์๋ ค์ฃผ๋'True', 'False'๋ก๋ง ์ถ๋ ฅ๋จ
# ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ์ถ์ผ๋ฉด df[์กฐ๊ฑด]
# ์ด๋ ๊ฒ df[] ํ๋ฒ๋ ๊ฐ์ธ์ค์ผ ๊ทธ ์กฐ๊ฑด์ ๋ง๋ row(ํ)์ ๋ฝ์ ์ ์์.
df[]
defult๋ True ์ค๋ฆ์ฐจ์
# ์ด์ ์ด ๋์ ์
df.sort_values(by='์ด์ ', ascending=False)
# ํ๊ท ์ด ๋ฎ์ ์
df.sort_values(by='ํ๊ท ', ascending=True)
# ๊ตญ์ด + ์ํ ์ ์๋ก ์ด์ ์ด ์ถ๊ฐ
df['์ด์ '] = df['๊ตญ์ด'] + df['์ํ']
df['ํ๊ท '] = df['์ด์ '] / 2
print(df)
import pandas as pd
# ๊ธฐ์กด ๋ฐ์ดํฐ
data = {
'์ด๋ฆ': ['์ฒ ์', '์ํฌ', '๋ฏผ์', '์ง๋ฏผ'],
'๊ตญ์ด': [90, 80, 85, 95],
'์ํ': [88, 92, 79, 100]
}
df = pd.DataFrame(data)
# ์ ํ์ ์ถ๊ฐ
new_student = {'์ด๋ฆ': 'ํ๋', '๊ตญ์ด': 85, '์ํ': 87}
df = pd.concat([df, pd.DataFrame([new_student])], ignore_index=True)
# df.loc[len(df)] = ['ํ๋', 85, 87]
print(df)
df = pd.concat([df, pd.DataFrame([new_student])], ignore_index=True)
df.loc[len(df)] = ['ํ๋', 85, 87]
len(df) : df์๋ ํ์ฌ 4๋ช
('์ฒ ์', '์ํฌ', '๋ฏผ์', '์ง๋ฏผ')์ด ์์. ๋ฐ๋ผ์ 4๋ฅผ ๋ฐํ
df.loc[4] : ํ Label 4๋ฒ์งธ๋ฅผ ๋งํจ.
df.loc[4] = ['ํ๋', 85, 87] : ํ Label 4๋ฒ์งธ์ ['ํ๋', 85, 87] ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ.
| ๊ตฌ๋ถ | loc | iloc |
|---|---|---|
| ๊ธฐ์ค | ๋ผ๋ฒจ(Label, ์ด๋ฆ) ๊ธฐ์ค | ์ธ๋ฑ์ค ๋ฒํธ(Index) ๊ธฐ์ค |
| ํ ์ ํ | ์ธ๋ฑ์ค ์ด๋ฆ ('์ฒ ์') | ํ ๋ฒํธ (0, 1, 2...) |
| ์ด ์ ํ | ์ด ์ด๋ฆ ('์ํ') | ์ด ๋ฒํธ (0, 1, 2...) |
| ์์ | df.loc['์ฒ ์', '์ํ'] | df.iloc[0, 2] |
| ํน์ง | ์ง๊ด์ , ์๋ฏธ ๋ช ํ | ๋ฐ๋ณต๋ฌธ, ์ซ์ ๊ธฐ์ค ์ฒ๋ฆฌ์ ์ ๋ฆฌ |
df.loc['์ฒ ์', '์ํ']
# ๊ฒฐ๊ณผ: 88 (๊ฐ ํ๋ - int)
df.loc['์ฒ ์', ['์ํ']] # ๋ฆฌ์คํธ๋ก ์ด์ ๋๊ธฐ๋ฉด 1๊ฐ๋ผ๋ Series ํํ๋ก ๋ฐํ๋จ (ํ์ฒ๋ผ ๋ค๋ฃธ)
# ๊ฒฐ๊ณผ:
# ์ํ 88
# Name: ์ฒ ์, dtype: int64
# (Series๋ก ๋ฐํ๋จ)
df.loc['์ฒ ์', ['๊ตญ์ด', '์ํ']]
# ๊ฒฐ๊ณผ:
# ๊ตญ์ด 90
# ์ํ 88
# Name: ์ฒ ์, dtype: int64
# ์กฐ๊ฑด์ผ๋ก '์ํฌ'์ธ ํ๋ง ๊ณ ๋ฅด๊ณ , ๊ทธ ์์์ '์ํ' ์ด๋ง ์ ํ
df[df['์ด๋ฆ'] == '์ํฌ']['์ํ']
df[์กฐ๊ฑด]['์ด'] ์ด ๋ถ๋ถ์ ๋ณด๊ณ
df[][] ์ด๋ฐ ํ์์ด ๋ค ๋๋ ์ค ์์๋ค.
์์ชฝ์ dataframeํ์์ด์ค๋ฉด ๊ฐ๋ฅํ์ง๋ง, ์์ชฝ์ seriesํ์์ด ์ค๋ฉด ์๋จ.
์ฌ๋ฌ ์ด์ ์ถ๋ ฅํ ๋์๋ ์ถ๋ ฅํ๋ ค๋ ์ปฌ๋ผ ['์ปฌ๋ผ1','์ปฌ๋ผ2'] ์ ํ๋ฒ ๋ df[] ์์ด์ค์ผ dataframeํ์์ด ๋จ.
df['์ปฌ๋ผ1','์ปฌ๋ผ2'] ๋ ๋ฌธ๋ฒ์ค๋ฅ๋ผ ์๋จ.