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)







相关文章
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
845 0
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
871 0
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
551 1
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
567 0
|
存储 数据采集 数据处理
Pandas与NumPy:Python数据处理的双剑合璧
Pandas与NumPy是Python数据科学的核心工具。NumPy以高效的多维数组支持数值计算,适用于大规模矩阵运算;Pandas则提供灵活的DataFrame结构,擅长处理表格型数据与缺失值。二者在性能与功能上各具优势,协同构建现代数据分析的技术基石。
1007 0
|
数据采集 存储 安全
Pandas数据类型转换:astype与to_numeric
在数据分析中,Pandas的`astype`和`to_numeric`是两种常用的数据类型转换方法。`astype`可将DataFrame或Series中的数据转换为指定类型,支持单一列或多列转换;常见问题包括无效字面量和精度丢失。`to_numeric`主要用于字符串转数值,容错能力强,能自动识别缺失值并优化内存占用。掌握这两种方法及其错误处理技巧,可提高数据分析的效率与准确性。
1382 23
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
545 2
|
存储 C语言
使用 sizeof 操作符计算int, float, double 和 char四种变量字节大小
【10月更文挑战第13天】使用 sizeof 操作符计算int, float, double 和 char四种变量字节大小。
953 1
|
存储 数据采集 数据处理
Pandas中批量转换object至float的高效方法
在数据分析中,常需将Pandas DataFrame中的object类型列转换为float类型以进行数值计算。本文介绍如何使用`pd.to_numeric`函数高效转换,并处理非数字值,包括用0或平均值填充NaN值的方法。
1319 1
|
机器学习/深度学习 并行计算 大数据
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
799 3

推荐镜像

更多