빅데이터 분석기사/작업 유형 1 (pd)

날짜타입으로 변경하기

유방울 2023. 5. 12. 23:59

dtypes : 데이터타입 확인

# [3-12] df의 컬럼별 데이터 타입을 확인합니다.
# df.info()가 아닌 데이터 타입만 보기
# 디타입
df.dtypes

pd.to_datetime(df['칼럼명'], format='~') 날짜타입 변경

# [3-14] df의 '측정일시'에 대해서 format='%Y%m%d'을 지정하여 데이터 타입을 datetime으로 변경합니다.
# 올바르게 변경되는 것을 확인할 수 있습니다.
# format은 필수 아님 일반적인 날짜 형식은 변경 안 해도 ㄱㅊ
pd.to_datetime(df['측정일시'],format='%Y%m%d')​

1축에 측정일시 2 칼럼을 format %Y%m%d%로 삽입

# [3-15] df의 '측정일시'에 대해서 format='%Y%m%d'을 지정하여 데이터 타입을 datetime으로 변경한 뒤 
# '측정일시2' 컬럼을 '측정일시' 뒤에 삽입합니다
# 이렇게 사용하면 맨 뒤에 추가됨 df['측정일시2'] = pd.to_datetime(df['측정일시'], format='%Y%m%d')  
df.insert(1, '측정일시2', pd.to_datetime(df['측정일시'], format='%Y%m%d') )

df.head(2)

측정일시	측정일시2	측정소명	이산화질소농도(ppm)	오존농도(ppm)	이산화탄소농도(ppm)	아황산가스(ppm)	미세먼지(㎍/㎥)	초미세먼지(㎍/㎥)	일산화탄소농도(ppm)
0	20160101	2016-01-01	강남구	0.047	0.006	0.8	0.006	73.0	44.0	NaN
1	20160101	2016-01-01	강남대로	0.054	0.004	1.2	0.009	85.0	52.0

엑세서 dt를 사용해 year, month, day  확인 

# [3-17] datetime 타입은 accessor엑세서 - dt를 사용할 수 있습니다.
# 머신러닝할 때 날짜데이터 사용할 수 없음
# https://pandas.pydata.org/pandas-docs/stable/reference/series.html#accessors
# df의 '측정일시2' 컬럼의 dt accessor를 사용하여 year 정보만 확인합니다.
df['측정일시2'].dt.year

0        2016
1        2016
2        2016
3        2016
4        2016
         ... 
19252    2019
19253    2019
19254    2019
19255    2019
19256    2019
Name: 측정일시2, Length: 60208, dtype: int64

행 추가

# [3-20] df에 '년', '월', '일' 컬럼을 추가합니다.
df['년'] = df['측정일시2'].dt.year
df['월'] = df['측정일시2'].dt.month
df['일'] = df['측정일시2'].dt.day
df.head(2)

측정일시	측정일시2	측정소명	이산화질소농도(ppm)	오존농도(ppm)	이산화탄소농도(ppm)	아황산가스(ppm)	미세먼지(㎍/㎥)	초미세먼지(㎍/㎥)	일산화탄소농도(ppm)	년	월	일
0	20160101	2016-01-01	강남구	0.047	0.006	0.8	0.006	73.0	44.0	NaN	2016	1	1
1	20160101	2016-01-01	강남대로	0.054	0.004	1.2	0.009	85.0	52.0	NaN	2016	1	1

way1  삭제할 칼럼명 목록주고 축 설정

df.drop('칼럼명', axis=1)

# [3-21] '측정일시2' 컬럼이 필요 없으므로 제거합니다.
# 컬럼을 제거하기 위해서는 drop 함수에서 axis=1 을 사용해야 합니다.
# 삭제된 DataFrame을 df2 이름을 지정합니다.
# way1 목록을 주고, 삭제 축 설정 필수!

df2 = df.drop('측정일시2', axis=1)
df2

way2 칼럼을 알려줌

df.drop(columns = ['칼럼명'])

# way2 컬럼이 뭔지 알려주는 것과 방법 동일함
df2 = df.drop(columns = ['측정일시2'])