搜索一些能用来进行数据分析探索的数据
利用Python对数据进行处理、制图、分析等来练习
1. 背景
通过二手车交易数据了解二手车行情,从中分析影响二手车价格的因素。
2. 说明
本文数据来源:https://www.kesci.com/home/project/5d2d821a688d36002c5f2d3b/dataset
python版本:3.5.2
3. 载入相关库
载入处理文件、表格、数据的库,以及可视化图形的库。
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
import os
import numpy as np
import collections
import seaborn as sns
import statsmodels.api as sm
4. 数据预处理
数据集是csv,因编码的问题另存为excel。
# 数据载入
data = pd.read_excel('second_cars_info.xlsx',encoding="ISO-8859-1")
# 数据字段处理
data['New_price'] = data['New_price'].str.extract('(\d+\.?\d+)',expand=True)#保留New_price字段的数字
data['Km'] = data['Km'].str.extract('(\d+\.?\d+)',expand=True)#保留KM字段的数字
data['Boarding_time'].loc[data['Boarding_time'] == '未上牌' ] = None # 将Boarding_time中未上牌的数据置为None
data['Boarding_time'] = pd.to_datetime(data['Boarding_time']) # 将Boarding_time转为时间
data['Boarding_time'] = data['Boarding_time'].apply(lambda x: x.year) # Boarding_time保留年份
# 字段数据类型更改
data['New_price'] = data['New_price'].astype('float')
data['Sec_price'] = data['Sec_price'].astype('float')
data['Km'] = data['Km'].astype('float')
# 对排放标准字段进行处理
discharge = data['Discharge'].str.split(',',expand=True)
discharge[1].loc[discharge[2].isnull() == False] = discharge[2]
discharge[0].loc[discharge[1].isnull() == False] = discharge[1]
discharge[0].loc[discharge[0] == 'OBD'] = '欧4'
data['Discharge'] = discharge[0]
# 将款式年份特征提取
type = data['Name'].str.split('款',expand=True)
type = type[0].str.extract(r'([-\s]\d{4})',expand=True)
data['type_year'] = type
data['type_year'] = data['type_year'].astype('float')
# 特征添加折旧率与车龄
data['zhejiu']