python二手交易平台代码_使用Python探索二手车市场(含代码)

原标题:使用Python探索二手车市场(含代码)

前言

上一期中,我们已经手把手的分享了如何使用Python实现某二手车平台数据的抓取,并成功的完成11,281条二手车数据的搜集。基于此,我们需要对获取的数据进行探索性分析,这里就采用我们之前学习的pandas模块和matplotlib模块的知识点做一个小小的数据分析项目。

数据清洗

我们再来看一下爬虫后获取数据的前几行,便于读者清楚的了解数据结构,各变量分别代表汽车品牌、汽车款式、上牌时间、行驶里程数、排放标准、二手价格和同款新车的参考价格:

从数据的前6行我们可以发现数据的一些问题,包括二手车的上牌时间,有的样本记录为“未上牌”,需要特殊处理、行驶里程数为字符串,需要类型的转化、新车原价也是字符串,也需要处理、上牌时间为字符串,如何计算上牌时间与当前10月份的时间差(月数)。而这些问题的解决,就需要我们进行数据清洗工作。

上牌时间字段的处理

由于上牌时间字段存在“未上牌”的值,我们需要看看这样的值占多大比例,如果比例不大,可以考虑将其删除。

# 导入第三方模块

importpandas aspd

importnumpy asnp

importmatplotlib.pyplot asplt

fromsklearn.linear_model importLinearRegression

# 可视化的中文处理

plt.rcParams[ 'font.sans-serif'] = 'Microsoft YaHei'

plt.rcParams[ 'axes.unicode_minus'] = False

# 设置类似R语言中的ggplot2风格

plt.style.use( 'ggplot')

# 读取数据(记得需要将csv文件先另存为UTF-8的编码,否则会报编码错误)

cars = pd.read_csv( 'second_cars_info.csv')

# “未上牌”的二手车占比

N = np.sum(cars.Boarding_time == '未上牌')Ratio = N/cars.shape[ 0]Ratio

# 由于未上牌的汽车数量占比极少,仅千分之八,这里不妨考虑将其删除

cars = cars.loc[cars.Boarding_time != '未上牌',:]

由于上面的清洗步骤,导致一些观测被删除,此时的行索引就不再是一个连续的自然数了,故需要重新设置索引,以免产生不必要的错误(因为pandas模块中数据结构的行索引会自动对齐)。

# 重新设置行索引

cars.index = range( 0,cars.shape[ 0])

# 取出上牌时间变量中的年和月

cars[ 'year'] = cars.Boarding_time.str[: 4].astype( 'int')month = cars.Boarding_time.str.findall( '年(.*?)月')

print(month.head(10))

# 由于month是列表构成的序列,所以需要非列表化,再序列化

month = pd.Series([i[ 0] fori inmonth]).astype( 'int')cars[ 'month'] = month

# print(month.head(10))

# 计算上牌日期距离2017年10月份的月数

cars[ 'diff_months'] = ( 2017-cars.year)* 12+ ( 10-cars.month) + 1

# 显示数据的前5行

cars.head()

行驶里程数字段的处理

<
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值