pandas 輕鬆實現資料型別轉化

2021-10-06 02:31:52 字數 2138 閱讀 7406

首先,了解一下pandas的資料型別:

pandas dtype

python type

numpy type

usage

object

str or mixed

string_, unicode_, mixed types

text or mixed numeric and non-numeric values

int64

intint_, int8, int16, int32, int64, uint8, uint16, uint32, uint64

integer numbers

float64

float

float_, float16, float32, float64

floating point numbers

bool

bool

bool_

true/false values

datetime64

nadatetime64[ns]

date and time values

timedelta[ns]

nana

differences between two datetimes

category

nana

finite list of text values

notes:object在載入資料時可以處理任何其他資料型別,包括字串,所以在pandas新版本1.0.0中新增了一資料型別,stringdtype,,專用來處理字串。也算是乙個改進。

兩個重要的資料轉化方法

1、astype

dataframe.astype(dtype, copy =

true

, errors =

'raise')or

series.astype(dtype, copy =

true

, errors =

'raise'

)

上述方法可以將一類資料轉換型別或者傳入乙個dict,列為key,需要轉化的資料型別為value。

2、convert_dtypes

dataframe.convert_dtypes(infer_objects =

true

, convert_string:

true

, convert_integer =

true

, convert_boolean =

true)or

series.convert_dtypes(infer_objects =

true

, convert_string:

true

, convert_integer =

true

, convert_boolean =

true

)

convert_dtypes可以自動推斷資料型別並進行轉化。個人感覺,這個方法只在識別string上智慧型,在int推斷時還是會盡可能的選擇大高位儲存,int還是以int64為主,記憶體消耗還是很大。

舉例:

df = pd.dataframe(

)df.dtypes

a int64

b float64

c object

dtype:

object

df[

'a']

= df[

'a']

.astype(np.int32)

df.dtypes

a int32

b float64

c object

dtype:

object

df.convert_dtypes(

).dtypes

a int64

b float64

c string

dtype:

object

參考:

pandas 資料型別 Series

首先載入庫 import numpy as np import pandas as pdpython list列表建立series a pd.series 1,2,3,4 預設索引 b pd.series 1,2,3,4 index a b c d 自定義索引 s pd.series true,1,...

Pandas的DataFrame資料型別

pandas的dataframe資料型別 縱軸表示不同索引axis 0,橫軸表示不同列axis 1 dataframe型別建立 1.從二維ndarray物件建立 import pandas as pd import numpy as np d pd.dataframe np.arange 10 re...

pandas 一 Series資料型別

二維資料 高維資料 series由一組資料與資料的索引組成的資料 aa pd.series 1,2,3,4,5 011 2233 445pd.series 1,2,3,4,5 index a b c d e a 1 b 2 c 3 d 4 e 5pd.series 2 index a b c a 2...