这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战
当我们有从网上爬下来的新鲜数据
标题 name, 作者 author, 评分 grade, 统计有多少人看过 stats
读取数据
使用pandas的 read_csv
方法读取数据, usecols可以选择某些指定的列进行读取,默认是所有列
1 | ini复制代码import pandas as pd |
可以输出前五条看看效果 print(df.head()
)
去重
1 | scss复制代码print(df.duplicated().value_counts()) |
通过输出的数据我们可以看到一共有103条数据,其中有一条重复的,我们也可以通过df.duplicated()
查看是哪一条是重复的数据
1 | ini复制代码df.drop_duplicates(keep='first', inplace=True) |
drop_duplicates
去重根据不同的情况有3个参数
subset : 列名数组,默认是全选,也就是如果指定的那几列的数据都重复了才进行删除
keep :默认是first, first是只保留第一次出现的重复行, last是只保留最后一次出现的重复行, False是删除所有的重复行
inplace : 为True就是在原数据上直接更改, 为False就是需要变量接收的
缺失值处理
1 | ini复制代码# 查看哪一列有缺失值 |
删除缺失值 dropna
1 | ini复制代码df.dropna(how='any', inplace=True) |
axis :0是行,1是列,默认是行
subset :对特定的列进行缺失值删除处理
how : any只要出现1个缺失值就删除整行,all所有列都是缺失值才删除
thresh : 缺失值的数量标准,达到这个阈值才会删除
inplace : 为True就是在原数据上直接更改, 为False就是需要变量接收的
填充缺失值 fillna
我是指定一个值去替换缺失值,将数据里面这个作者有评分的平均分填在缺失值上
1 | python复制代码def fillByAuthor(author): |
1 | ini复制代码a = fillByAuthor('王光光光光') |
inplace : 为True就是在原数据上直接更改, 为False就是需要变量接收的
method : pad/ffill:用前一个非缺失值去填充该缺失值; backfill/bfill:用下一个非缺失值填充该缺失值
None:指定一个值去替换缺失值(缺省默认这种方式)
limit :限制填充个数
axis:修改填充方向
另存为
1 | arduino复制代码df.to_csv("clean_data.csv") |
本文转载自: 掘金