Pandas五、数据类型和丢失值初窥

读入数据:

import pandas as pd

reviews = pd.read_csv("winemag-data-130k-v2.csv", index_col=0)

1、查看数据集中评分列的数据类型

dtype = reviews.points.dtype
dtype
'''
dtype('int64')
'''

2、创建一个Series,其数据来自评分(points)中的项数,要求把这些项数转换成字符串型。提示:在python中string 是 “str

point_strings = reviews.points.astype(str)

3、有时候价格(price)列是空的,那么我们怎么统计有多少空值?

# 第一种
missing_price_reviews = reviews[reviews.price.isnull()]
len(missing_price_reviews)
# 第二种
n_missing_prices = reviews.price.isnull().sum()
# 第三种
n_missing_prices = pd.isnull(reviews.price).sum()
'''
8996
'''

4、创建一个序列Series,它能够统计在region_1中的值出现的次数。需要注意的是用Unknown替换丢失的值,并降序排序。输出应有下面的样子:

'''
Unknown                    21247
Napa Valley                 4480
                           ...  
Bardolino Superiore            1
Primitivo del Tarantino        1
Name: region_1, Length: 1230, dtype: int64
'''

我们先来处理空值,使用pandas的fillna能够让我们替代空值。下面我们用Unknown替换Nan丢失的值。

reviews_per_region = reviews.region_1.fillna('Unknown')
reviews_per_region
'''
0                          Etna
1                       Unknown
2             Willamette Valley
3           Lake Michigan Shore
4             Willamette Valley
5                       Navarra
6                      Vittoria
7                        Alsace
8                       Unknown
9                        Alsace
10                  Napa Valley
11                       Alsace
12             Alexander Valley
            ...
'''

蓝后再统计有多少这样的这些项。这里要用到value_counts()这个函数。

reviews_per_region = reviews.region_1.fillna('Unknown').value_counts()
type(reviews.region_1.fillna('Unknown'))
reviews_per_region
'''
pandas.core.series.Series
Unknown                                  21247
Napa Valley                               4480
Columbia Valley (WA)                      4124
Russian River Valley                      3091
California                                2629
Paso Robles                               2350
Mendoza                                   2301
Willamette Valley                         2301
Alsace                                    2163
Champagne                                 1613
Barolo                                    1599
Finger Lakes                              1565
                     ...
'''

最后再进行降序排序:

reviews_per_region = reviews.region_1.fillna('Unknown').value_counts().sort_values(ascending=False)
# type(reviews.region_1.fillna('Unknown'))
reviews_per_region
'''
Unknown                                              21247
Napa Valley                                           4480
Columbia Valley (WA)                                  4124
Russian River Valley                                  3091
California                                            2629
Paso Robles                                           2350
Mendoza                                               2301
Willamette Valley                                     2301
Alsace                                                2163
Champagne                                             1613
Barolo                                                1599
'''

注明:

以上数据来自kaggle learn

pandas Data types and missing data workbook

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值