迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

如何在 Pandas 中更改列的数据类型

作者:迹忆客 最近更新:2024/04/23 浏览次数:

我们将介绍更改 Pandas Dataframe 中列数据类型的方法,以及 to_numaricas_typeinfer_objects 等选项。我们还将讨论如何在 to_numaric 中使用 downcasting 选项。


to_numeric 方法将列转换为 Pandas 中的数值

to_numeric() 是将 dataFrame 的一列或多列转换为数值的最佳方法。它还会尝试将非数字对象(例如字符串)适当地更改为整数或浮点数。to_numeric() 输入可以是 SeriesDataFrame 的列。如果某些值不能转换为数字类型,则 to_numeric() 允许我们将非数字值强制为 NaN。

代码举例:

# python 3.x
import pandas as pd

s = pd.Series(["12", "12", "4.7", "asad", "3.0"])
print(s)
print("------------------------------")
print(pd.to_numeric(s, errors="coerce"))

输出:

0      12
1      12
2     4.7
3    asad
4     3.0
dtype: object0    12.0
1    12.0
2     4.7
3     NaN
4     3.0
dtype: float64

默认情况下,to_numeric() 将为我们提供 int64float64 dtype。我们可以使用一个选项来转换为 integersignedunsigned 或者 float

# python 3.x
import pandas as pd

s = pd.Series([-3, 1, -5])
print(s)
print(pd.to_numeric(s, downcast="integer"))

输出:

0   -3
1    1
2   -5
dtype: int64
0   -3
1    1
2   -5
dtype: int8

astype() 方法将一种类型转换为任何其他数据类型

astype() 方法使我们能够明确了解要转换的 dtype。通过在 astype() 方法内传递参数,我们可以从一种数据类型转到另一种数据类型。

考虑以下代码:

# python 3.x
import pandas as pd

c = [["x", "1.23", "14.2"], ["y", "20", "0.11"], ["z", "3", "10"]]
df = pd.DataFrame(c, columns=["first", "second", "third"])
print(df)
df[["second", "third"]] = df[["second", "third"]].astype(float)
print("Converting..................")
print("............................")
print(df)

输出:

  first second third
0     x   1.23  14.2
1     y     20  0.11
2     z      3    10
Converting..................
............................
  first  second  third
0     x    1.23  14.20
1     y   20.00   0.11
2     z    3.00  10.00

infer_objects() 方法将列数据类型转换为更特定的类型

从 Pandas 的 0.21.0 版本开始引入的 infer_objects() 方法,用于将 dataFrame 的列转换为更特定的数据类型(软转换)。

考虑以下代码:

# python 3.x
import pandas as pd

df = pd.DataFrame({"a": [3, 12, 5], "b": [3.0, 2.6, 1.1]}, dtype="object")
print(df.dtypes)
df = df.infer_objects()
print("Infering..................")
print("............................")
print(df.dtypes)

输出:

a    object
b    object
dtype: object
Infering..................
............................
a      int64
b    float64
dtype: object

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

查找已安装的 Pandas 版本

发布时间:2024/04/23 浏览次数:116 分类:Python

在本文中,我们将介绍如何查找已安装的 Python Pandas 库版本。我们使用了内置版本功能和其他功能来显示其他已安装版本的详细信息。

Pandas 中的 Groupby 索引列

发布时间:2024/04/23 浏览次数:79 分类:Python

本教程将介绍如何使用 Python Pandas Groupby 对数据进行分类,然后将函数应用于类别。通过示例使用 groupby() 函数按 Pandas 中的多个索引列进行分组。

Pandas 通过 Groupby 应用变换

发布时间:2024/04/23 浏览次数:180 分类:Python

本教程演示了 Pandas Python 中与 groupby 方法一起使用的 apply 和 transform 之间的区别。

Pandas Vlookup

发布时间:2024/04/23 浏览次数:83 分类:Python

本教程演示如何在 Python 中使用 Pandas 通过不同的技术合并两个不同的表。

Pandas 中的散点矩阵

发布时间:2024/04/23 浏览次数:105 分类:Python

本教程演示了如何使用 scatter_matrix 函数在 Pandas 中创建散点图。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便