Python是一种功能强大的编程语言,可用于处理和清洗原始数据。下面是Python清洗原始数据的完整攻略:
1. 导入需要使用的库
在Python中清洗数据通常需要用到一些常见的库,比如pandas、numpy和re。可以使用以下语句导入这些库:
import pandas as pd
import numpy as np
import re
2. 读取原始数据
在开始清洗数据前,需要先读取原始数据。通常需要将数据保存在CSV、Excel或文本文件中。可以使用pandas的read_csv、read_excel和read_table等函数读取数据。
data = pd.read_csv('data.csv')
3. 检查数据
在清洗数据之前,需要先检查数据的质量。可以使用pandas和numpy库等工具完成数据清理和筛选。
# 检查数据是否有缺失值
print(data.isnull().sum())
# 删除空白字符
data.replace('', np.nan, inplace=True)
data.dropna(inplace=True)
# 删除重复项
data.drop_duplicates(inplace=True)
4. 数据规范化
在数据检查完成后,可以对数据进行规范化操作,例如转换大小写、删除标点符号和删除特殊字符等。
# 转换大小写
data['name'] = data['name'].str.lower()
# 删除标点符号
data['description'] = data['description'].apply(lambda x: re.sub('[^\w\s]', '', x))
# 删除特殊字符
data['text'] = data['text'].apply(lambda x: x.encode('ascii', 'ignore').decode('ascii'))
5. 数据转换
在数据检查及规范化完成后,可以进行数据转换操作,例如字符串转换为日期格式、数值格式和布尔格式等。
# 字符串转换为日期格式
data['date'] = pd.to_datetime(data['date'])
# 字符串转换为数值格式
data['sales'] = pd.to_numeric(data['sales'])
# 字符串转换为布尔格式
data['flag'] = data['flag'].map({'Y': True, 'N': False})
6. 数据存储
在完成数据清洗和转换后,可以将数据保存到文件中。可以使用pandas的to_csv、to_excel和to_sql等函数保存数据。
data.to_csv('cleaned_data.csv', index=False)
以下是两个示例:
示例1:清洗电商网站商品数据
假设有一个电商网站的商品数据文件,包含名称、价格、销售量、描述等字段,需要对数据进行清洗处理。假设数据文件名为“product.csv”,数据格式如下:
name,price,sales,description
iPhone XR,8999,100,"Apple iPhone XR 64GB 手机 黑色 4G全网通 双卡双待 游戏长续航 全面屏拍照手机"
小米电视4,2999,200,"小米电视4 65英寸 HDR 4K高清智能语音网络液晶平板电视"
华为MateBook X Pro,7999,50,"HUAWEI 华为MateBook X Pro 13.9英寸笔记本电脑 (i5-8250U 8G 256G+MX150 2G独显) 四核超轻苗条 全面屏德国莱茵认证"
华硕ROG游戏本,13999,20,"ASUS 华硕 ROG GM501GI 15.6英寸游戏本 笔记本电脑(i7-8750H 16G 256GSSD+1T GTX1080 8G 全屏)"
可以使用以下代码进行数据清洗:
import pandas as pd
import numpy as np
import re
# 读取原始数据
data = pd.read_csv('product.csv')
# 检查数据
print(data.isnull().sum())
data.replace('', np.nan, inplace=True)
data.dropna(inplace=True)
data.drop_duplicates(inplace=True)
# 数据规范化
data['name'] = data['name'].str.lower()
data['description'] = data['description'].apply(lambda x: re.sub('[^\w\s]', '', x))
# 数据转换
data['price'] = pd.to_numeric(data['price'])
data['sales'] = pd.to_numeric(data['sales'])
# 存储数据
data.to_csv('cleaned_product.csv', index=False)
上述代码将清洗后的数据保存在“cleaned_product.csv”文件中。
示例2:清洗新闻数据
假设有一个新闻网站的数据文件,包含标题、内容、发布时间、作者等字段,需要对数据进行清洗处理。假设数据文件名为“news.csv”,数据格式如下:
title, content, date, author
习近平主席发表2021年新年贺词, “过去一年,我们面对前所未有的困难和挑战,但我们众志成城、共克时艰,绘就了团结抗疫的壮丽画卷!”,"2021/1/1","习近平"
特朗普被弹劾, “这是我们保卫宪法、维护民主、维护国家尊严的举措!”,"2021/1/13","Joe Biden"
可以使用以下代码进行数据清洗:
import pandas as pd
import numpy as np
import re
# 读取原始数据
data = pd.read_csv('news.csv')
# 检查数据
print(data.isnull().sum())
data.replace('', np.nan, inplace=True)
data.dropna(inplace=True)
data.drop_duplicates(inplace=True)
# 数据规范化
data['title'] = data['title'].str.lower()
data['content'] = data['content'].apply(lambda x: re.sub('[^\w\s]', '', x))
# 数据转换
data['date'] = pd.to_datetime(data['date'])
# 存储数据
data.to_csv('cleaned_news.csv', index=False)
上述代码将清洗后的数据保存在“cleaned_news.csv”文件中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 清洗原始数据 - Python技术站