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 的布尔值。


目录
相关文章
|
11天前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
23 2
|
14天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
26 3
|
18天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
28 2
|
3天前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
7 0
|
1月前
|
存储 数据挖掘 索引
Pandas数据结构:Series与DataFrame
本文介绍了 Python 的 Pandas 库中两种主要数据结构 `Series` 和 ``DataFrame`,从基础概念入手,详细讲解了它们的创建、常见问题及解决方案,包括数据缺失处理、数据类型转换、重复数据删除、数据筛选、排序、聚合和合并等操作。同时,还提供了常见报错及解决方法,帮助读者更好地理解和使用 Pandas 进行数据分析。
99 10
|
1月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
57 18
|
1月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
73 8
|
1月前
|
Python
Python中的函数
Python中的函数
51 8
|
数据挖掘 索引 Python
Python数据分析与展示:DataFrame类型索引操作-10
Python数据分析与展示:DataFrame类型索引操作-10
140 0
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!