Python 教程之 Pandas(6)—— DataFrame 中的转换函数

简介: Python 教程之 Pandas(6)—— DataFrame 中的转换函数

Python 是一种用于进行数据分析的出色语言,主要是因为以数据为中心的 Python 包的奇妙生态系统。Pandas 就是其中之一,它使导入和分析数据变得更加容易。

将 pandas 对象强制转换为指定的 dtype

DataFrame.astype() 函数用于将 pandas 对象转换为指定的 dtype。astype()函数还提供将任何合适的现有列转换为分类类型的能力。

代码 #1: 转换权重列数据类型。

# importing pandas as pd
import pandas as pd
# 从 csv 文件制作数据框
df = pd.read_csv("nba.csv")
# 打印数据框的前 10 行以进行可视化
df[:10]

image.png

由于数据有一些“nan”值,所以为了避免任何错误,我们将删除所有包含任何nan 值的行。

# 删除其中包含任何“nan”值的所有行。
df.dropna(inplace = True)

image.png

# 让我们找出Weight列的数据类型
before = type(df.Weight[0])
# 现在我们将其转换为 'int64' 类型。
df.Weight = df.We<strong>ight.astype('int64')
# 让我们找出转换后的数据类型
after = type(df.Weight[0])
# 打印之前的值
before
# 打印 after 的值
after

输出:

image.png

# 打印数据框并查看更改后的样子
df

image.png

 

为输入对象列推断更好的数据类型

DataFrame.infer_objects() 函数尝试为输入对象列推断更好的数据类型。此函数尝试对对象类型化列进行软转换,使非对象列和不可转换列保持不变。推理规则与正常的 Series/DataFrame 构造期间相同。

代码 #1: 使用infer_objects()函数推断更好的数据类型。

# importing pandas as pd
import pandas as pd
# 创建数据框
df = pd.DataFrame({"A":["sofia", 5, 8, 11, 100],
        "B":[2, 8, 77, 4, 11],
        "C":["amy", 11, 4, 6, 9]})
# 打印数据框
print(df)

输出 :

image.png

让我们看看数据框中每一列的dtype(数据类型)。

# 打印基本信息
df.info()

image.png

正如我们在输出中看到的,第一列和第三列是object类型。而第二列是int64类型。现在切片数据框并从中创建一个新的数据框。

# 从第一行切到最后
df_new = df[1:]
# 让我们打印新的数据框
df_new
# 现在让我们打印列的数据类型
df_new.info()

输出 :


image.png

正如我们在输出中看到的,列“A”和“C”是对象类型,即使它们包含整数值。所以,让我们试试这个infer_objects()功能。

# 应用 infer_objects() 函数。
df_new = df_new.infer_objects()
# 应用函数后打印 dtype
df_new.info()

输出:

image.png

现在,如果我们查看每一列的 dtype,我们可以看到列“A”和“C”现在是int64类型。

检测缺失值

DataFrame.isna() 函数用于检测缺失值。它返回一个布尔值相同大小的对象,指示值是否为 NA。NA 值,例如 None 或 numpy.NaN,被映射到 True 值。其他所有内容都映射到 False 值。空字符串 ” 或 numpy.inf 等字符不被视为 NA 值(除非您设置 pandas.options.mode.use_inf_as_na = True)。

代码 #1: 使用isna()函数检测数据帧中的缺失值。

# importing pandas as pd
import pandas as pd
# 创建数据框
df = pd.read_csv("nba.csv")
# 打印数据框
df

image.png

让我们使用该isna()函数来检测缺失值。

# 检测缺失值
df.isna()

输出:

image.png

在输出中,对应于缺失值的单元格包含真值,否则为假。

检测现有/非缺失值

DataFrame.notna()函数检测数据框中的现有/非缺失值。该函数返回一个与应用它的对象大小相同的布尔对象,指示每个单独的值是否为na值。所有非缺失值都映射为 true,缺失值映射为 false。

代码 #1: 使用notna()函数查找数据框中的所有非缺失值。

# importing pandas as pd
import pandas as pd
# 创建第一个数据框
df = pd.DataFrame({"A":[14, 4, 5, 4, 1],
        "B":[5, 2, 54, 3, 2],
        "C":[20, 20, 7, 3, 8],
        "D":[14, 3, 6, 2, 6]})
# 打印数据框
print(df)

image.png

让我们使用该dataframe.notna()函数查找数据框中的所有非缺失值。

# 寻找 non-na 值
df.notna()

输出:

image.png

正如我们在输出中看到的,数据帧中的所有非缺失值都已映射为真。没有错误值,因为数据框中没有缺失值。

DataFrame中的转换方法

功能 描述
DataFrame.convert_objects() 尝试为对象列推断更好的 dtype。
DataFrame.copy() 返回此对象的索引和数据的副本。
DataFrame.bool() 返回单个元素 PandasObject 的布尔值。


目录
相关文章
|
7月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
523 0
|
7月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
678 0
|
8月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
1019 19
|
7月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
349 1
|
8月前
|
数据采集 存储 JSON
使用Python获取1688商品详情的教程
本教程介绍如何使用Python爬取1688商品详情信息,涵盖环境配置、代码编写、数据处理及合法合规注意事项,助你快速掌握商品数据抓取与保存技巧。
|
9月前
|
存储 数据采集 数据处理
Pandas与NumPy:Python数据处理的双剑合璧
Pandas与NumPy是Python数据科学的核心工具。NumPy以高效的多维数组支持数值计算,适用于大规模矩阵运算;Pandas则提供灵活的DataFrame结构,擅长处理表格型数据与缺失值。二者在性能与功能上各具优势,协同构建现代数据分析的技术基石。
705 0
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
433 1
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
423 0
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
386 2
|
机器学习/深度学习 并行计算 大数据
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
610 3

热门文章

最新文章

推荐镜像

更多