散点图绘制二手车年份距离与保值率(二手车价/新车价格)分析

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了散点图绘制二手车年份距离与保值率(二手车价/新车价格)分析相关的知识,希望对你有一定的参考价值。

【散点图绘制】二手车年份、距离与保值率(二手车价/新车价格)分析

散点图绘制入门

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
athletes = pd.read_csv('new_athlete.csv').dropna()
athletes.head()
Unnamed: 0NameSexAgeHeightWeight
00A DijiangM24.0180.080.0
11A LamusiM23.0170.060.0
44Christine Jacoba AaftinkF21.0185.082.0
510Per Knut AalandM31.0188.075.0
618John AalbergM31.0183.072.0
plt.figure(figsize=(15,5))
male_athletes = athletes[athletes['Sex'] == 'M']
male_heights = male_athletes['Height']
male_weights = male_athletes['Weight']
male_height_mean = male_heights.mean()
male_weight_mean = male_weights.mean()

female_athletes = athletes[athletes['Sex'] == 'F']
female_heights = female_athletes['Height']
female_weights = female_athletes['Weight']
female_height_mean = female_heights.mean()
female_weight_mean = female_weights.mean()

plt.scatter(male_heights,male_weights,s=male_athletes['Age'],marker='^')
plt.scatter(female_heights,female_weights,s=female_athletes['Age'],alpha=0.5)
plt.axvline(male_height_mean,linewidth=1,c='r')
plt.axhline(male_weight_mean,linewidth=1,c='y')

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(male_heights.values[:,np.newaxis],male_weights)
predict_male_weight = model.predict(male_heights.values[:,np.newaxis])
plt.plot(male_heights,predict_male_weight)
# male_heights.values.reshape(male_heights.shape[0],1)

二手车数据散点图

作业要求

  1. 把guazi_bj(北京)、guazi_gz(广州)、guazi_sh(上海)、guazi_sz(深圳)二手车的数据归类在一个DataFrame中。
  2. 新增车辆使用年份(use_year)与保值率(hedge_rate)两个字段。其中使用年份的计算是把当前的时间减去购买的时间,然后再转换成年;保值率的计算是将二手车的价格/新车的价格。
  3. 把二手车使用年份与保值率(二手车价/新车价格)绘制成散点图,观察他们的分布情况。
  4. 把二手车的行驶距离与保值率(二手车价/新车价格)绘制成散点图,观察他们的分布情况。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from datetime import datetime
guazi_bj = pd.read_csv("guazi_bj.csv")
guazi_gz = pd.read_csv("guazi_gz.csv")
guazi_sh = pd.read_csv("guazi_sh.csv")
guazi_sz = pd.read_csv("guazi_sz.csv")

guazi = pd.concat([guazi_bj,guazi_gz,guazi_sh,guazi_sz],axis=0)
def get_use_year(value):
    if isinstance(value,str):
        datetime_value = datetime.strptime(value,"%Y-%m")
        now = datetime.now()
        yeardelay = (now - datetime_value).total_seconds()/60/60/24/30/12
        return yeardelay
    return np.NAN
guazi['use_year'] = guazi['buy_time'].apply(get_use_year)
guazi['hedge_rate'] = guazi['es_price'] / guazi['new_price']
guazi[['use_year','km','hedge_rate']].head()
use_yearkmhedge_rate
04.8907453.820.615385
13.5379672.350.600000
27.1740786.670.426829
36.49352311.830.356295
45.6490788.950.469314
plt.figure(figsize=(15,5))
plt.scatter(guazi['km'],guazi['hedge_rate'],s=guazi['km'])

plt.figure(figsize=(15,5))
plt.scatter(guazi['use_year'],guazi['hedge_rate'],s=guazi['km'])
plt.xlabel("use year")
plt.ylabel("hedge rate")
Text(0, 0.5, 'ledge rate')

guazi[(guazi['hedge_rate'] > 0.9) & (guazi['use_year'] > 3)][['new_price','es_price','use_year','km']].head()
new_pricees_priceuse_yearkm
2110.1910.035.3935237.21
245.305.195.3157453.42
303.303.157.51019011.26
3410.109.704.0463017.21
3910.2410.006.1601906.86
guazi[(guazi['hedge_rate'] > 0.9) & (guazi['use_year'] > 6)][['new_price','es_price','use_year','use_year']].head()
new_pricees_priceuse_yearuse_year
303.303.157.5101907.510190
3910.2410.006.1601906.160190
809.118.927.6796347.679634
907.577.326.7490786.749078
1247.987.617.9351907.935190

观察结果

  1. 通过以上分析,我们可以看到汽车的保值率是随着使用年份和行驶公里数的增加呈现线性下降的。
  2. 有一部分数据引起我们的注意,就是保值率大于0.9,并且使用年份和行驶公里数都比较大的数据,我们可以看出这类数据基本上可以算是异常数据了,因此以后在分析的时候就可以处理掉这部分数据了。

加油!

感谢!

努力!

以上是关于散点图绘制二手车年份距离与保值率(二手车价/新车价格)分析的主要内容,如果未能解决你的问题,请参考以下文章

想在哈尔滨出售二手车,那你就点先了解保值率。品车慧教您。

『网络爬虫』买车比价,自动采集某车之家各车型裸车价

『网络爬虫』买车比价,自动采集某车之家各车型裸车价

绘制新文档以散点图

二元变量的散点图 (ggplot)

Matplotlib绘制散点图与条形图