Computer >> Máy Tính >  >> Lập trình >> Python

Thay đổi Loại dữ liệu cho một hoặc nhiều cột trong Khung dữ liệu Pandas

Nhiều khi chúng ta có thể cần chuyển đổi kiểu dữ liệu của một hoặc nhiều cột trong khung dữ liệu gấu trúc để đáp ứng các nhu cầu tính toán nhất định. Có một số hàm hoặc phương thức cài sẵn có sẵn trong gấu trúc có thể đạt được điều này.

Sử dụng astype ()

Phương thức astype () chúng ta có thể áp đặt kiểu dữ liệu mới cho một cột hiện có hoặc tất cả các cột của khung dữ liệu gấu trúc. Trong ví dụ dưới đây, chúng tôi chuyển đổi tất cả các cột hiện có thành kiểu dữ liệu chuỗi.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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

Sử dụng to_numeric ()

Chúng tôi có thể chuyển đổi các số hiện được đánh dấu là chuỗi trong khung dữ liệu thành số bằng to_numeric ().

Ví dụ

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)

Chạy đoạn mã trên cho chúng ta kết quả sau -

Đầu ra

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

Sử dụng inv_objects ()

Đây là một phương pháp chuyển đổi mềm trong đó chúng tôi chuyển đổi các cột của DataFrame có kiểu dữ liệu đối tượng thành một loại cụ thể hơn.

Ví dụ

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)

Chạy đoạn mã trên cho chúng ta kết quả sau -

Đầu ra

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