机器学习前数据分析基础知识
步骤
数据导入 - > 数据处理 - > 数据分析和数据挖掘 -> 数据展示 - > 报告撰写
本章展示前两部,将数据导入以及处理异常数据
1. 读取文件或数据库
csv文件
书写一个ex1.csv文件 编号,姓名,年龄,职业 1,张三,12,学生 2,李四,20,厨师 3,王梅,23,护士
import pandas as pd data=pd.read_csv('ex1.csv') print("read_csv:\n",data)
Excel文件
import pandas as pd xlsx = pd.ExcelFile('data.xlsx') data = pd.read_excel(xlsx,'sheel2') print("read_csv:\n", data) 或是 data = pd.read_excel('data.xlsx','sheel2') print("read_csv:\n", data)
数据库
import sqlite3 import pandas as pd query = "select * from user;" con = sqlite3.connect('testSqlite') cursor = con.execute(query) data = cursor.fetchall() print("data from db:\n",data) #把数据转换DataFrame df = pd.DataFrame(data , columns=[x[0] for x in cursor.description]) print("DataFrame is:\n",df)
2.数据清理
(1)数据类型概览和类型转换
概览
data.info()
数据规模
data.shape
数据类型
data.dtypes
预览前5行数据
data.head()
预览最后5行数据
data.tail()
data['sbelongwhere'] = data['sbelongwhere'].astype(str) #转str类型 data['id'] = data['id'].str[1:].astype(float) #转数值类型 data['birthday'] = pd.to_datetime(data['birthday'], format='%Y-%m-%d') #转日期类型
(2)处理缺失值
# 判断数据是否有缺失 data.isnull() # 去除缺失值 去除包含缺失值的数据 data.dropna() 去除有缺失值的列 data.dropna(axis=1) # 填充数据 用0填充缺失值 data.fillna(0) 用字典填充缺失值 data.fillna({"年龄":"--","职业":"未知"})
(3)处理重复数据
# 查看数据是否有重复 data.duplicated() # 某列是否有重复数据 data.duplicated(['id']) # 删除重复数据 # 1. 删除重复行 data.drop_duplicated() # 2. 删除A列重复数据 data.drop_duplicated(['id'])
(4)数据转换
#时间戳转日期 data['date'] = pd.to_datetime(data['date'],unit='s',origin=pd.Timestamp('2000-01-01 00:00:00')) #用字典替换某一列的值 例如行政区划代码转化地名 city_to_country = { '1301': '石家庄市', '1302': '唐山市', '1303': '秦皇岛市', '1304': '邯郸市', '1305': '邢台市', '1306': '保定市', '1307': '张家口市', '1308': '承德市', '1309': '沧州市', '1310': '廊坊市', '1311': '衡水市' } data['address'] = data['address'].map(city2)

浙公网安备 33010602011771号