Pandas数据分析实战02

Pandas数据分析实战02

任务目标

读取 guazi.csv 二手车数据
• 1.重命名列名(修改为中文或英文)
• 2.异常值处理
• 3.去除重复值
• 4.缺失值的处理
• 5.年份,里程,售价,原价所在列的数据进行转换(数值型数据)
• 6.查看各品牌品骏售价

数据准备

瓜子网二手车交易数据

代码展示

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False 

# 设定文件名称
file_name = "guazi.csv"

# 设定文件路径
file_path = "D:\\Coding\\Python\\LogicCoding\\Data Analyze\\瓜子\\"

# 用pandas读取csv文件
df_gz = pd.read_csv(file_path + file_name)
df_gz.head()
df_gz.info()

在这里插入图片描述
在这里插入图片描述
通过观察,发现原数据的四个缺陷:
1,列名不规范;
2,有重复值;
3,有缺失值
4,行数据有异常数据。

# 重命名列名
df_gz.columns = ['Type', 'Year', 'Mileage', 'Site','Sale_Price','Original_Price']
df_gz.head()

在这里插入图片描述

# 去除异常数据
df_gz = df_gz[df_gz["Type"] != "leixing"]
df_gz.head()

在这里插入图片描述

# 数据去重
df_gz.drop_duplicates(inplace=True)

# 去除 原价 这一列的缺失值  (其实本人更喜欢用品牌的均值代替)
df_gz.dropna(axis=0, inplace=True)
df_gz.info()

在这里插入图片描述
到这里数据清洗完毕,下一步开始数据转换

# 年份,里程,售价,原价所在列的数据进行转换(数值型数据)
# 方法一:替换单位的字符为空字符串,再将剩下的数字转换为数值型
"""
columns = ["Year", "Mileage", "Sale_Price", "Original_Price"]
units = ["年", "万公里", "万", "万"]
for i in range(len(units)):
    df_gz[columns[i]].str.replace(units[i], "").astype("float")
"""
# 方法一不推荐,因为遇到单位不统一的情况很难处理。
# 方法二:使用正则表达式匹配数字
columns = ["Year", "Mileage", "Sale_Price", "Original_Price"]
for i in range(len(columns)):
    if i == 0:
        df_gz[columns[i]] = df_gz[columns[i]].str.extract("(\d+)").astype("int")
    else:
        df_gz[columns[i]] = df_gz[columns[i]].str.extract("(\d+.\d+)").astype("float")
df_gz

在这里插入图片描述

# 求各品牌的平均售价
type_sale = df_gz.groupby("Type")["Sale_Price"].mean()
type_sale

# 保存文件
type_sale.to_excel(file_path + "车型平均售价.xlsx")

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清弦墨客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值