일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 데이터분석
- 네트워크보안
- 머신러닝
- 버전관리
- 2
- 딥러닝
- 네트워크
- 소프트웨어공학
- 웹개발
- Yes
- 인공지능
- 데이터베이스
- 보안
- 자료구조
- 프로그래밍
- 파이썬
- 데이터구조
- 프로그래밍언어
- I'm Sorry
- 사이버보안
- 클라우드컴퓨팅
- 데이터과학
- 알고리즘
- 소프트웨어
- 자바스크립트
- 컴퓨터과학
- 컴퓨터공학
- 코딩
- 컴퓨터비전
- 빅데이터
- Today
- Total
스택큐힙리스트
NaN이 포함된 Pandas 열을 dtype `int`로 변환하세요. 본문
아래와 같이 .csv 파일에서 데이터를 Pandas 데이터프레임으로 읽었습니다. 하나의 열, 즉 id에 대해 열 유형을 int으로 지정하고 싶습니다. 문제는 id 시리즈에 누락/빈 값이 있습니다.
.csv를 읽으면서 id 열을 정수로 변환하려고 하면 다음과 같은 오류가 발생합니다:
df= pd.read_csv(data.csv, dtype={'id': int})
error: Integer column has NA values
대안으로, 나는 아래와 같이 읽은 후에 열 유형을 변환해 보았지만, 이번에는 다음과 같은 오류가 발생합니다.
df= pd.read_csv(data.csv)
df[['id']] = df[['id']].astype(int)
error: Cannot convert NA to integer
이것을 어떻게 처리할 수 있을까요?
답변 1
버전 0.24.+에서 pandas는 누락된 값이 있는 정수 dtype을 보유할 수 있는 기능을 갖추었습니다.
판다는 정수 데이터를 모를 수도있는 값과 함께 표현할 수 있습니다. 이것은 판다에서 구현된 확장 형식입니다. 이것은 정수의 기본 dtype이 아니며 유추되지 않습니다. dtype을 명시적으로 전달해야합니다.
arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())
pd.Series(arr)
0 1
1 2
2 NaN
dtype: Int64
열을 널 가능한 정수로 변환하려면 다음을 사용하십시오 :
df['myCol'] = df['myCol'].astype('Int64')
답변 2
컴퓨터 프로그래밍에서 데이터 분석을 하다 보면, 결측치가 포함된 데이터를 처리해야 할 때가 많습니다. 특히, Pandas를 사용하는 경우 NaN(Not a Number) 값을 가진 열(column)이 많기 때문에, 이를 처리하는 방법에 대해 알아보면 도움이 될 것입니다.NaN 값을 가진 열을 데이터 타입(int, float 등)으로 변환하려면, fillna() 함수나 interpolate() 함수를 사용할 수 있습니다. 그러나 이러한 함수를 사용하면 NaN 값을 가진 열의 데이터가 손실될 수 있기 때문에, 정확한 값을 유지하며 열의 데이터 타입을 변경하는 방법이 필요합니다.
이를 위해, pandas.DataFrame.astype() 함수를 사용할 수 있습니다. 이 함수는 열의 데이터 타입을 변경하는 데 사용되며, NaN 값을 가진 열을 정확한 정수 값으로 변환하는 데도 사용할 수 있습니다.
예를 들어, 다음과 같은 데이터 프레임을 생각해보겠습니다.
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, None, 10]}
df = pd.DataFrame(data)
print(df)
이 데이터 프레임은 두 개의 열 A와 B로 구성되어 있습니다. 열 A는 정수 타입이며, 열 B는 NaN 값을 가지고 있습니다. 이제 열 B의 데이터 타입을 정수로 변경해 보겠습니다.
df['B'] = df['B'].astype(int)
print(df)
위 코드를 실행하면, 열 B의 NaN 값이 정수형으로 변경됩니다. 따라서, 데이터 프레임 전체의 데이터 타입을 일치시키거나, 데이터 타입이 필요한 경우에는 astype() 함수를 사용하여 NaN 값을 가진 열을 정확한 데이터 타입으로 변환하면 됩니다.
이와 같이 Pandas를 사용하여 NaN 값을 가진 열의 데이터 타입을 변환하는 방법을 알아보았습니다. 이를 참고하여 데이터 분석 시 NaN 값을 다루는 방법을 꼭 숙지해 두시기 바랍니다.