๐ตPandas 2. DataFrame(1) - ๋ง๋ค๊ธฐ
1.DataFrame
๐ต ๋ฐ์ดํฐํ๋ ์์ ์๋ฆฌ์ฆ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ์
๋๋ค.
๐ต row ์ column์ผ๋ก ๊ตฌ์ฑ๋๋ Table ํ์์
๋๋ค.
2.Dafatrame ์์ฑ - pd.DataFrame( ) ํจ์
2.1 index๋ฅผ ๋ฐ๋ก ์ง์ ํด์ ๋ง๋ค๊ธฐ
import pandas as pd
๐ตpd.DataFrame(๋์ ๋๋ฆฌ, index)
df1 = pd.DataFrame({"a" : [1,2,3],
"b" : [4,5,6],
"c" : [7,8,9]}, index=[1,2,3])
df1
>>
a b c
1 1 4 7
2 2 5 8
3 3 6 9
2.2. index๋ฅผ ๋ฐ๋ก ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ
๐ตpd.DataFrame(๋์ ๋๋ฆฌ)
df2 = pd.DataFrame({"a" : [1,2,3],
"b" : [4,5,6],
"c" : [7,8,9]})
df2
>>
a b c
0 1 4 7
1 2 5 8
2 3 6 9
index๋ฅผ ๋ฐ๋ก ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ default๋ 0,1,2โฆ ๋ก ์๋ ์ค์ ๋ฉ๋๋ค.
2.3. ๋ฆฌ์คํธ๋ก ๋ง๋ค๊ธฐ
๐ตpd.DataFrame(๋ฆฌ์คํธ, columns, index)
df3 = pd.DataFrame(data = [[1,4,7],[2,5,8],[3,6,9]],
columns = ['a','b','c'],
index = [1,2,3])
df3
>>
a b c
1 1 4 7
2 2 5 8
3 3 6 9
2.4. ๋ฉํฐ์ธ๋ฑ์ค ๋ง๋ค๊ธฐ
๐ตpd.MultiIndex(์ธ๋ฑ์ค ๋ฆฌ์คํธ, names)
df4 = pd.DataFrame({"a" : [1,2,3],
"b" : [4,5,6],
"c" : [7,8,9]},
index = pd.MultiIndex.from_tuples(
[('d',1), ('d',2), ('e',1)], names=['n','v']))
df4
>>
a b c
n v
d 1 1 4 7
2 2 5 8
e 1 3 6 9
MultiIndex๋ฅผ ์ฒ์๋ถํฐ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ๋ณด์ง ๋ชปํ๋๋ฐ ์๋ก์์ ๊ฐ์ ธ์๋ดค์ต๋๋ค.
pandas์์ ์ ๊ณตํ๋ ํฌ๋งท์ด๊ธฐ์ ํ์์ ๋ฐ๋ผ ์ฌ์ฉํ์๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!!
3. DataFrame์ ์ ๊ทผํ๊ธฐ
df = pd.DataFrame({"a" : [1,2,3],
"b" : [4,5,6],
"c" : [7,8,9]})
df
>>
a b c
0 1 4 7
1 2 5 8
2 3 6 9
3.1. DataFrame ์ ๋ณด์ป๊ธฐ
๐ต df.index - ์ธ๋ฑ์ค ์ ๋ณด
df.index
>> RangeIndex(start=0, stop=3, step=1)
๐ต df.columns - ์ด ์ ๋ณด
df.columns
>> Index(['a', 'b', 'c'], dtype='object')
๐ต df.values - ๊ฐ ์ ๋ณด
df.values
>> array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]], dtype=int64)
๐ต df.shape - ํํ ์ ๋ณด
df.shape
>> (3, 3)
๐ต df. info() - ๋ฐ์ดํฐํ๋ ์์ ์ ๋ณด
df.info()
>> <class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 a 3 non-null int64
1 b 3 non-null int64
2 c 3 non-null int64
dtypes: int64(3)
memory usage: 200.0 bytes
ํนํ df. info()
ํจ์๋ ๊ฒฐ์ธก๊ฐ์ ์ ๋ฌด๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์๋นํ ์ ์ฉํ๊ฒ ์ฐ์ด๋ ํจ์์
๋๋ค.
3.2. ์ด์ ์ธ๋ฑ์ค๋ก ๋ง๋ค๊ธฐ
๐ต df.set_index(์ด)
df.set_index('a')
>>
b c
a
1 4 7
2 5 8
3 6 9
๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํด์ ์ฌ๋ฌ ๊ฐ์ ์ด์ ์ธ๋ฑ์ค๋ก ์ง์ ํ ์ ์์ต๋๋ค.
df.set_index(['a', 'b'])
>>
c
a b
1 4 7
2 5 8
3 6 9
3.3. ์ธ๋ฑ์ค ์ด๊ธฐํํ๊ธฐ
๐ต df.reset_index()
drop ์ต์ ์ default ๊ฐ False ์ด๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ ์ธ๋ฑ์ค๋ฅผ ์ฒซ๋ฒ์งธ์ด๋ก ์ฝ์ ํฉ๋๋ค.
df.reset_index(drop = False)
>>
index a b c
0 0 1 4 7
1 1 2 5 8
2 2 3 6 9
drop=True ๋ก ์ง์ ํ๋ฉด ๊ธฐ์กด์ ์ธ๋ฑ์ค๋ฅผ ๋ฒ๋ฆฌ๊ณ ์ ๋ ฌํด์ค๋๋ค.
df.reset_index(drop = True)
>>
a b c
0 1 4 7
1 2 5 8
2 3 6 9
Leave a comment