欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pandas指南-5.数据类型和缺失值

程序员文章站 2024-01-24 17:08:04
...

目录

数据类型

缺失数据


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

import pandas as pd
pd.set_option('max_rows', 5)
import numpy as np
melbourne_data = pd.read_csv('melb_data.csv') 
melbourne_data.head()

数据类型

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

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

melbourne_data.Price.dtype
dtype('float64')

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

melbourne_data.dtypes
Suburb            object
Address           object
Rooms              int64
Type              object
Price            float64
Method            object
SellerG           object
Date              object
Distance         float64
Postcode         float64
Bedroom2         float64
Bathroom         float64
Car              float64
Landsize         float64
BuildingArea     float64
YearBuilt        float64
CouncilArea       object
Lattitude        float64
Longtitude       float64
Regionname        object
Propertycount    float64
dtype: object

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

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

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

0        1480000
1        1035000
2        1465000
3         850000
4        1600000
          ...   
13575    1245000
13576    1031000
13577    1170000
13578    2500000
13579    1285000
Name: Price, Length: 13580, dtype: int64

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

melbourne_data.index.dtype
dtype('int64')

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

缺失数据

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

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

pandas指南-5.数据类型和缺失值

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

0        Unknown
1             79
2            150
3        Unknown
4            142
          ...   
13575    Unknown
13576        133
13577    Unknown
13578        157
13579        112
Name: BuildingArea, Length: 13580, dtype: object

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

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

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

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

0        Biggin New
1        Biggin New
2        Biggin New
3        Biggin New
4            Nelson
            ...    
13575         Barry
13576      Williams
13577         Raine
13578       Sweeney
13579       Village
Name: SellerG, Length: 13580, dtype: object

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

 

上一篇: java实现bmp图片信息隐写

下一篇: