콘텐츠로 이동

CSV 활용하기

실습 데이터

health

CSV 파일 읽기

import numpy as np
import pandas as pd

# csv 파일 읽기, 쓰기
df = pd.read_csv(파일명, sep=',')
df.to_csv(파일명, index=True)


# csv 파일 읽기, 쓰기
df = pd.read_csv('data/health.csv', sep=',')
df = pd.read_csv('data/health.csv', sep=',', encoding="cp949")

Health 데이터 실습 1

import numpy as np
import pandas as pd

df = pd.read_csv('data/health.csv', sep=',', encoding="cp949")

print(df.columns)

c = ['가입자 일련번호', '성별코드', '신장(5Cm단위)', '체중(5Kg 단위)', '허리둘레']

c1 = df[c]
print(c1.head())

c1.to_csv('data/health2.csv', index=False, encoding="cp949")

Health 데이터 실습 2

import numpy as np
import pandas as pd

df = pd.read_csv('data/health.csv', sep=',', encoding="cp949")

print(df.columns)

c1 = df.iloc[:, [1, 3, 4, 5]]
print(c1.head())

c1.to_csv('data/health2.csv', index=False, encoding="cp949")

실습 - 컬럼 추가후 값 할당

import numpy as np
import pandas as pd

df = pd.read_csv('data/health2.csv', sep=',', encoding="cp949")

df['BMI'] = df['체중(5Kg 단위)'] / (df['신장(5Cm단위)'] * df['신장(5Cm단위)']) * 10000

print(df.head())

df.to_csv('data/health3.csv', index=False, encoding="cp949")

실습 - 값 비교하여 등급 할당하기

import numpy as np
import pandas as pd

df = pd.read_csv('data/health2.csv', sep=',', encoding="cp949")

df['BMI_LEVEL'] = ''

print(df.columns)

df['BMI'] = df['체중(5Kg 단위)'] / (df['신장(5Cm단위)'] * df['신장(5Cm단위)']) * 10000

df.loc[(df['BMI'] < 18.5), 'BMI_LEVEL'] = '저체중'
df.loc[(df['BMI'] >= 18.5) & (df['BMI'] < 23), 'BMI_LEVEL'] = '정상'
df.loc[(df['BMI'] >= 23) & (df['BMI'] < 25), 'BMI_LEVEL'] = '비만전단계'
df.loc[(df['BMI'] >= 25) & (df['BMI'] < 30), 'BMI_LEVEL'] = '1단계비만'
df.loc[(df['BMI'] >= 30) & (df['BMI'] < 35), 'BMI_LEVEL'] = '2단계비만'
df.loc[(df['BMI'] >= 35), 'BMI_LEVEL'] = '3단계비만'

print(df.head())

df.to_csv('data/health3.csv', index=False, encoding="cp949")

실습 - 컬럼 이름 변경하기

import numpy as np
import pandas as pd

df = pd.read_csv('data/health3.csv', sep=',', encoding="cp949")

print(df.columns)

df.rename(columns = {'가입자 일련번호':'NO', '연령대 코드(5세단위)':'AGE', '신장(5Cm단위)':'HEI', '체중(5Kg 단위)':'WEI'}, inplace=True)

print(df.columns)

df.to_csv('data/health4.csv', index=False, encoding="cp949")