pandas清洗脏数据

准备工作

pip install pandas
import pandas as pd
data = pd.read_csv('..//data/tmdb_5000_credits.csv')

检查数据

data.head() # 打印输出前五行数据

查看一列的一些基本统计信息:data.columnname.describe()
选择一列:data['columnname']
选择一列的前几行数据:data['columnname'][:n]
选择多列:data[['column1','column2']]
Where条件过滤:data[data['columnname']>condition]

处理缺失数据

原因:
从来没有填正确过
数据不可用
计算错误

处理方法:
为缺失数据赋值默认值
去掉/删除缺失数据行
去掉/删除缺失率高的列

添加默认值
data.country = data.country.fillna('')
使用空字符串替换
data.duration = data.duration.fillna('data.duration.mean()')
使用电影平均时长替换

删除不完整的行
data.dropna()
删除任何包含na的行
data.dropna(how='all')
删除一整行都是na
data.dropna(thresh=5)
在一行有5个以上非空值数据是可以留下来的
data.dropna(subset=['title_year'}])
丢掉不知道上映时间的电影数据

删除不完整的列
data.drop(axis=1, how='all')
删除一整列为na的列
data.drop(axis=1, how='any')
删除任何包含空值的列

规范化数据类型

data = pd.read_csv('../data/movie_metadata.csv', dtype={'duration': int})
告诉我们duration列的类型是数值类型
data = pd.read_csv('../data/movie_metadata.csv', dtype={'title_year': str})

必要的变换

错别字
英文单词书写时大小写的不统一
输入了额外的空格

data['movie_title'].str.upper()
将我们数据中所有的movie_title改成大写
data['movie_title'].str.strip()
去掉末尾空格

重命名列名

data = data.rename(columns = {'title_year':'release_data', 'movie_facebook_likes':'facebook_likes'})

保存结果

data.to_csv('cleanfile.csv', encoding='utf-8')
发布了352 篇原创文章 · 获赞 31 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/strawqqhat/article/details/101175709
今日推荐