Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Pandas Dataframe에서 하나 이상의 열에 대한 데이터 유형 변경

<시간/>

여러 번 특정 계산 요구 사항을 수용하기 위해 팬더 데이터 프레임에서 하나 이상의 열 데이터 유형을 변환해야 할 수도 있습니다. 이것을 달성할 수 있는 몇 가지 내장 함수 또는 pandas에서 사용할 수 있는 메서드가 있습니다.

astype() 사용

astype() 메서드를 사용하여 pandas 데이터 프레임의 기존 열 또는 모든 열에 새 데이터 유형을 적용할 수 있습니다. 아래 예에서는 모든 기존 열을 문자열 데이터 유형으로 변환합니다.

import pandas as pd
#Sample dataframe
df = pd.DataFrame({
   'DayNo': [1, 2, 3, 4, 5,6,7],
   'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'],
   'Qty': [2.6, 5, 11.8, 2, 5.6,0,0.25]})
# Exisitng Data types
print(df.dtypes)
#Convert to string data type
df_str = df.astype(str)
# Verify the conversion
print("***After Conversion***")
print(df_str.dtypes)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

DayNo       int64
Name       object
Qty     float64
dtype: object
***After Conversion***
DayNo    object
Name     object
Qty     object
dtype: object

to_numeric() 사용

현재 데이터 프레임에서 문자열로 표시된 숫자를 to_numeric()을 사용하여 숫자로 변환할 수 있습니다.

import pandas as pd
# Example dataframe
df = pd.DataFrame({
   'DayNo': [1, 2, 3, 4, 5,6,7],
   'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'],
   'Qty': [2.6, 5, 11.8, 2, 5.6,0,0.25]})
df_str = df.astype(str)
print(df_str.dtypes)
#Applying conversion
print("After Conversion:")
df_num = pd.to_numeric(df_str.DayNo)
print('DayNo:',df_num.dtypes)

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

출력

DayNo object
Name object
Qty object
dtype: object
After Conversion:
DayNo: int64

infer_objects() 사용

객체 데이터 유형이 있는 DataFrame의 열을 보다 구체적인 유형으로 변환하는 소프트 변환 방법입니다.

import pandas as pd
# Example dataframe
df = pd.DataFrame({
   'DayNo': [1, 2, 3, 4, 5,6,7],
# 'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'],
   'Qty': ['2.6', '5', '11.8', '2', '5.6','0','0.25']}, dtype='object')
print(df.dtypes)
#Applying conversion
print("After Conversion:")
df_new = df.infer_objects()
print(df_new.dtypes)

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

출력

DayNo    object
Qty      object
dtype:   object
After Conversion:
DayNo   int64
Qty    object
dtype: object