콘텐츠로 이동

2차원 데이터 데이터프레임

데이터프레임 생성하기

import numpy as np
import pandas as pd

# 1차원 배열 -> Series
# 2차원 배열 -> DataFrame

# 2차원 배열 -> DataFrame
# value와 index(label), columns로 구성
# index는 숫자 또는 label 문자열로 구성

df = pd.DataFrame(values, index, columns)


# 생성하기 방법1 -> 딕셔너리를 이용하는 방법

a = {'이름' : ['이유리', '최민준', '김민지'],
    '전공': ['경영학과', '컴퓨터공학과', '데이터과학'],
    '성별': ['여', '남', '여']}

df = pd.DataFrame(a)
print(df)

생성하기 방법2 -> 2차원 리스트를 이용하는 방법

a = [ ['이유리', '경영학과', '여'],
    ['최민준', '컴퓨터공학과', '남'],
    ['김민지', '데이터과학', '남'] ]

df = pd.DataFrame(a)
print(df)


df.columns = ['이름', '전공', '성별']
print(df)

값 출력하기

a = {'이름' : ['이유리', '최민준', '김민지'],
    '전공': ['경영학과', '컴퓨터공학과', '데이터과학'],
    '성별': ['여', '남', '여']}

df = pd.DataFrame(a)

print(df.values)
print(df.index)
print(df.columns)
print(df.dtypes)
print(df.shape)
print(df.info())


# 일부만 출력하기
print(df.head())    #기본 5개
print(df.head(10))

print(df.tail())    #기본 5개
print(df.tail(10))

특정 열만 가져오기

a = {'이름' : ['이유리', '최민준', '김민지'],
    '전공': ['경영학과', '컴퓨터공학과', '데이터과학'],
    '성별': ['여', '남', '여']}

df = pd.DataFrame(a)

c1 = df['이름']
print(c1)

c1 = df.이름
print(c1)


# 여러 열을 추출하기
a = {'이름' : ['이유리', '최민준', '김민지'],
    '전공': ['경영학과', '컴퓨터공학과', '데이터과학'],
    '성별': ['여', '남', '여']}

df = pd.DataFrame(a)

c = ['이름', '전공']

c1 = df[c]
print(c1)

특정 인덱스 값 추출하기

a = {'이름' : ['이유리', '최민준', '김민지'],
    '전공': ['경영학과', '컴퓨터공학과', '데이터과학'],
    '성별': ['여', '남', '여']}

df = pd.DataFrame(a)

i1 = df.iloc[1]
print(i1)

i2 = df.iloc[0:2]
print(i2)

연속하지 않은 인덱스 값 추출하기

a = {'이름' : ['이유리', '최민준', '김민지'],
    '전공': ['경영학과', '컴퓨터공학과', '데이터과학'],
    '성별': ['여', '남', '여']}

df = pd.DataFrame(a)

idx = [0, 2]

i1 = df.iloc[idx]
print(i1)

특정 컬럼과 열 지정

a = {'이름' : ['이유리', '최민준', '김민지'],
    '전공': ['경영학과', '컴퓨터공학과', '데이터과학'],
    '성별': ['여', '남', '여']}

df = pd.DataFrame(a)

i1 = df['이름'][0]
print(i1)


# 특정 컬럼과 열을 동시에 지정하는 다른 방법
i2 = df.iloc[0:2, 1:]
print(i2)


# 특정 컬럼과 열을 동시에 지정하는 다른 방법
i2 = df.iloc[0:2, 0:1]
print(i2)

# 특정 컬럼과 열을 동시에 지정하는 다른 방법
i2 = df.loc[0:4, '이름':'전공']
print(i2)

조건 필터링하기

# 남학생만 추출하기
i2 = df.loc[d['성별'] == '남']
print(i2)


# 여학생만 추출하기
i2 = df.loc[d['성별'] == '여']
print(i2)

DataFrmae 함수

describe()
count()
mean()
var()
std()
min()
max()
median()
quantile()

행 추가하기

df.insert(3, '나이', 0, True)

s = pd.Series([11, 22, 33])
df = d.append(s, ignore_index=True) 

시리즈로 부터 생성하기

s = pd.Series([11, 22, 33])
df = pd.DataFrmae(s)

s1 = pd.Series([11, 22, 33])
s2 = pd.Series([1, 3, 5])

df = pd.DataFrmae(s1, s2)

열 추가하기

df['price'] = [100, 200, 300]

df[4] = [100, 200, 300]