Vitu课堂:数据处理【瑞士军刀pandas指南】:5.数据类型和缺失值

参考来源:Vitu.AI

我们还是先来加载一下数据。

importpandasaspdpd.set_option('max_rows',5)importnumpyasnpmelbourne_data = pd.read_csv('melb_data.csv') melbourne_data.head()

数据类型

DataFrame或Series中列的数据类型称为dtype。

你可以使用dtype属性来获取特定列的类型:

melbourne_data.Price.dtype

或者,dtypes属性返回数据集中每列的dtype:

melbourne_data.dtypes

数据类型告诉我们关于pandas如何在内部存储数据。 float64表示它使用的是64位浮点数; int64表示类似大小的整数,依此类推。

要记住(并且在这里非常清楚地显示)的一个特点是完全由字符串组成的列不能获得自己的类型; 而是给出了对象类型。

通过使用astype函数,只要这种转换有意义,就可以将一种类型的列转换为另一种类型。 例如,我们可以将Price列从其现有的float64数据类型转换为int64数据类型:

melbourne_data.Price.astype('int64')

DataFrame或Series索引也有自己的dtype:

melbourne_data.index.dtype

pandas还支持更多奇特的数据类型:分类数据和时间序列数据。 因为这些数据类型很少使用,所以我们将在本教程后面的部分中再来看它们。

缺失数据

条目缺失值的值为NaN,“非数字”的缩写。 由于技术原因,这些NaN值始终为float64 dtype。

pandas提供了一些特定于缺失数据的方法。 要选择NaN entreis,您可以使用pd.isnull(或其伴随pd.notnull)。 这意味着:

melbourne_data[melbourne_data.BuildingArea.isnull()]

替换缺失值是一种常见操作。 pandas为这个问题提供了一个非常方便的方法:fillna。 fillna提供了一些减轻此类数据的不同策略。 例如,我们可以简单地用“Unknown”替换每个NaN:

melbourne_data.BuildingArea.fillna("Unknown")

或者,我们可以使用在数据库中给定记录之后出现的第一个非空值来填充每个缺失值。 这被称为回填策略:

fillna支持一些用于输入缺失值的策略。 有关更多内容,请阅读官方功能文档。

或者,我们可能有一个我们想要替换的非null值。 在数据集中反映这一点的一种方法是使用replace方法:

melbourne_data.SellerG.replace('Biggin','Biggin New')

替换方法在这里值得一提,因为它可以方便地替换在数据集中给出某种标记值的丢失数据:“Unknown”,“Undisclosed”,“Invalid”等等。

原文地址:数据处理【瑞士军刀pandas指南】:5.数据类型和缺失值

你可能感兴趣的:(Vitu课堂:数据处理【瑞士军刀pandas指南】:5.数据类型和缺失值)