Pandas是Python当中重要的数据分析工具,在进行数据分析时,确保使用正确的数据类型很是重要,不然可能会获得意想不到的结果或错误。对 Pandas 而言,它会在不少状况下正确地做出数据类型推断,你能够继续进行分析工做,而无需深刻思考该主题。
尽管 Pandas 工做得很好,但在数据分析过程当中的某个时刻,你可能须要将数据从一种类型显式转换为另外一种类型。本文将讨论 Pandas 的基本数据类型(即 dtypes),它们如何映射到 python 和 numpy 数据类型,以及从一种 Pandas 类型转换为另外一种类型的几个方式。python
Pandas 的数据类型:数据类型本质上是编程语言用来理解如何存储和操做数据的内部结构。例如,一个程序须要理解你能够将两个数字加起来,好比 5 + 10 获得 15。或者,若是是两个字符串,好比「cat」和「hat」,你能够将它们链接(加)起来获得「cathat」。尚学堂•百战程序员陈老师指出有关 Pandas 数据类型的一个可能使人困惑的地方是,Pandas、Python 和 numpy 的数据类型之间有一些重叠。git
大多数状况下,你没必要担忧是否应该明确地将熊猫类型强制转换为对应的 NumPy 类型。通常来讲使用 Pandas 的默认 int64 和 float64 就能够。我列出此表的惟一缘由是,有时你可能会在代码行间或本身的分析过程当中看到 Numpy 的类型。
数据类型是在你遇到错误或意外结果以前并不会关心的事情之一。不过当你将新数据加载到 Pandas 进行进一步分析时,这也是你应该检查的第一件事情。
我将使用一个很是简单的 CSV文件 来讲明在 Pandas 中可能会遇到的一些常见的由数据类型致使的错误。另外,在 github 上也一个示例 notbook。程序员
使用 lambda,咱们能够将代码简化为一行,这是很是有效的方法。但我对这种方法有三个主要的意见:若是你只是在学习 Python / Pandas,或者若是未来会有 Python 新人来维护代码,我认为更长的函数的可读性更好。主要缘由是它能够包含注释,也能够分解为若干步骤。lambda 函数对于新手来讲更难以掌握。
其次,若是你打算在多个列上重复使用这个函数,复制长长的 lambda 函数并不方便。
最后,使用函数能够在使用 read_csv() 时轻松清洗数据。我将在文章结尾处介绍具体的使用方法。有些人也可能会争辩说,其余基于 lambda 的方法比自定义函数的性能有所提升。但为了教导新手,我认为函数方法更好。github
关于Pandas 辅助函数的说明:Pandas 在直白的 astype() 函数和复杂的自定义函数之间有一个中间地带。这些辅助函数对于某些数据类型转换很是有用。
若是你顺序读下来,你会注意到我没有对日期列或 Jan Units 列作任何事情。这两种列均可以使用 Pandas 的内置函数(如 pd.to_numeric() 和 pd.to_datetime())进行转换。
Jan Units 转换出现问题的缘由是列中包含一个非数字值。若是咱们尝试使用 astype(),咱们会获得一个错误。
编程