Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略

简介: Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略

知识点


在pandas中,如果某个字段下,数据类型不一致导致整个字段类型不相同,可以进行字段类型转换!,在pandas中,进行数据类型转换非常简单,只需要使用astype函数即可!



1、category类型与object类型


 object类型(python中) category类型(pandas中特有)

简介

     python是面向对象的语言。在python里面,一切皆为对象。

在python中,

object类型,一般表示文本类型数据。

有些难以被自动判别的数据类型,或者由不止一种数据类型组成;由于Python一切皆对象,因此都会被处理为最宽泛的"对象"也就是object类型数据。

其实,在数据分析中,有时候会遇到某个字段的数据类型与初始设置的不相符,此时,就要去分析是否是数据不规整造成的。

category是 pandas 的一种数据类型,对应着被统计的变量。它实际上是动态枚举的一种形式。如果某个字段的内容中,其可能值的范围是固定且有限的,则category类型数据最为适用;

category是由固定的且有限数量的变量组成的。比如:性别、血型、等级等;

category类型数据的每一个元素的值,要么是预设好的类型中的某一个,要么是空值(np.nan);

在比较大的数据集中,可以通过使用category类型数据来加快速度!

属性 具有object类型数据的基本属性。

.describe()

.cat.categories  

.cat.rename_categories  

.value_counts()

.str 属性  

pd.concat

union_categoricals   

内存使用量

转换 df["col"].astype(‘category‘)





输出结果

image.png







实现代码


import pandas as pd

import numpy as np

contents={"name": ['Bob',        'LiSa',                     'Mary',                       'Alan'],

         "ID":   [1,              2,                         ' ',                          None],    # 输出 NaN

         "age":  [np.nan,        28,                           38 ,                          '' ],   # 输出

         "age02":  [14,           26,                           24 ,                          6],

       "born": [pd.NaT,     pd.Timestamp("1990-01-01"),  pd.Timestamp("1980-01-01"),        ''],     # 输出 NaT

         "sex":  ['男',          '女',                        '女',                        None,],   # 输出 None

         "hobbey":['打篮球',     '打羽毛球',                   '打乒乓球',                    '',],   # 输出

         "money":[200.0,                240.0,                   290.0,                     300.0],  # 输出

         "weight":[140.5,                120.8,                 169.4,                      155.6],  # 输出

         "test01":[1,    2.123456789,        3.123456781011126,   4.123456789109999],    # 输出

         "test02":[1,    2.123456789,        3.123456781011126,   4.123456789109999],    # 输出

         }

data_frame = pd.DataFrame(contents)

print('Init-------------------------------')

print(data_frame.dtypes)

print(data_frame)

# 将dataframe格式中的数据类型转为object数据类型

data_frame['test02'] = data_frame['test02'].astype('object')   # 关键字bool,'object'、'category'、str

data_frame['test02'] = data_frame['test02'].apply(str)

data_frame.to_excel("data_demo.xls")

print('after astype-------------------------------')

print(data_frame.dtypes)

print(data_frame)

data_frame_temp=data_frame.copy()

# ML之FE:将dataframe中的数据类型进行标准化

print('after Categorical-------------------------------')

data_frame=cols2DfCatAndNum(data_frame)

print(data_frame.dtypes)







相关文章
|
1月前
|
安全 编译器 Go
Go语言中的int和int32:同一个概念吗?
【2月更文挑战第24天】
152 3
|
7天前
|
数据处理 索引 Python
Pandas的datetime数据类型(二)
Pandas的datetime数据处理涉及日期运算和Timedelta计算,如计算疫情爆发天数,获取日期的季度和年份。示例中展示如何从Ebola数据集重建疫情爆发第一天,以及如何对银行关闭日期分组统计。此外,演示了如何按日期筛选数据,设置日期为DataFrame索引,并使用`date_range`创建日期序列。还讨论了如何处理不连续日期,以及如何进行时间范围查询,包括在特定时间段内选择数据和按时间间隔过滤。最后,展示了如何高效地在时间序列上选取数据。
|
7天前
|
Python
Pandas的datetime数据类型(一)
Python中内置了`datetime`模块,用于处理日期和时间。可以使用`datetime.now()`获取当前时间,或通过`datetime(year, month, day)`创建指定日期。在Pandas中,`pd.to_datetime()`函数用于将数据转换为`Timestamp`或`DatetimeIndex`,如从CSV加载数据时转换日期列。此外,`pd.read_csv()`的`parse_dates`参数可以直接将指定列解析为日期类型。Pandas的`Timestamp`对象还允许提取年、月、日等部分。
|
1月前
|
存储 Python
Python浮点型(float)
【4月更文挑战第9天】Python中的浮点型(float)表示实数,基于IEEE 754双精度标准,约有15-17位十进制精度。创建浮点型变量可通过直接赋值,如`x = 3.14`。支持加减乘除等运算,但运算可能因精度问题产生不精确结果,如`0.1 + 0.2 != 0.3`。可使用`round()`函数四舍五入,或通过`is_close()`函数比较浮点数是否接近。在需要高精度计算时,建议使用`decimal`模块。
22 2
|
1月前
|
安全 Python
Python系列(16)—— string类型转float类型
Python系列(16)—— string类型转float类型
|
1月前
|
存储 设计模式 Python
Python中的类(Class)和对象(Object)
Python中的类(Class)和对象(Object)
48 0
|
1月前
|
Python
Python学习 -- 根类object
Python学习 -- 根类object
25 0
|
1月前
|
前端开发 Python
Python float(input())的用法,web中的应用
要理解Python中的float(input()),可以分两部分。第一,input()用于获取键盘上的输入,该函数的返回值是一个Python字符串str类型的数据——不过输入的是什么;第二,float()函数用于将传递的参数——这里就是input()的返回值,一个字符串——转换为float浮点数的类型。float()函数转换input()的返回值相对于使用int()可以保留相应的精度。
90 1
|
1月前
|
存储 NoSQL 数据挖掘
Pandas 数据类型概述与转换实战
Pandas 数据类型概述与转换实战
|
8月前
|
Python
Python学习 -- 根类object
Python学习 -- 根类object
65 0

热门文章

最新文章