1. pandas datetime 변환
- pandas의 DataFrame 에서 datatime 형태로 생긴 데이터는 to_datetime을 이용하여 해당 열의 data type을 변경할 수 있습니다.
import pandas as pd
df = pd.DataFrame(['2018-10-26 12:00:00', '2018-10-26 13:00:15'], columns={"a"})
df를 출력해보면 아래와 같다.
a | |
0 | 2018-10-26 12:00:00 |
1 | 2018-10-26 13:00:15 |
해당 a column의 datatype을 보면..? object 타입으로 나온다. object type의 경우 날짜 타입이 아니므로 해당 열의 데이터는 연산이 불가능 한 상태입니다.
0 2018-10-26 12:00:00
1 2018-10-26 13:00:15
Name: a, dtype: object
해당 column을 to_datetime을 통해 datetime으로 변경할 수 있습니다.
df['a'] = pd.to_datetime(df['a'])
df['a']의 값을 찍어보면 datetime으로 column의 타입이 변경된걸 볼 수 있습니다.
0 2018-10-26 12:00:00
1 2018-10-26 13:00:15
Name: a, dtype: datetime64[ns]
2. 숫자 형식의 데이터가 있는 column 숫자 type의 column으로 변경하기
- dataframe의 데이터 형태가 숫자 형태를 띄고 있으나 str 으로 값이 들어있는 경우 한번에 숫자 형 column으로 변경이 가능합니다.
import pandas as pd
df = pd.DataFrame({'a' : ['2018-10-26 12:00:00', '2018-10-26 13:00:15'],
'b' : ['1', '2'],
'c' : ['1.5', '5.5']
})
a | b | c | |
0 | 2018-10-26 12:00:00 | 1 | 1.5 |
1 | 2018-10-26 13:00:15 | 2 | 5.5 |
df['b']와 df['c'] 의 타입은
0 1
1 2
Name: b, dtype: object
0 1.5
1 5.5
Name: c, dtype: object
dataframe의 pd.apply 와 pd.to_numeric을 활용하면 int float 타입으로 변경이 가능합니다.
df = df.apply(pd.to_numeric)
하지만 위와 같이 적용하면 a 컬럼의 타입 때문에 에러가 발생하며 변환이 되지 않습니다.
ValueError: Unable to parse string "2018-10-26 12:00:00" at position 0
이 경우 errors = 'ignore'를 추가 parameter로 넣어주면 가능한 columns만 변환 합니다.
df = df.apply(pd.to_numeric, errors='ignore')
0 1
1 2
Name: b, dtype: int64
0 1.5
1 5.5
Name: c, dtype: float64
errors 옵션의 종류는 아래 공식 페이지에서 확인 후 사용하세요.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.apply.html
pandas.DataFrame.apply — pandas 2.0.3 documentation
next pandas.DataFrame.applymap
pandas.pydata.org
'python > pandas 활용' 카테고리의 다른 글
pandas groupby() 활용 - 데이터 그룹화 (0) | 2024.03.09 |
---|---|
dataframe combine_first() - 두 DataFrame 합치기 (0) | 2022.08.30 |
pandas - pivot, pivot_table (0) | 2022.04.20 |
padnas(dataframe) 문자열이 포함된 column 가져오기 (0) | 2022.04.11 |