Pandas实战练习03_20200915

实战3

读取北上广深瓜子二手车的数据
• 1.分别读取4个csv文件,然后合并多个csv文件
• 2.去重复数据,重新设置连续索引
• 3.汽车自动挡和手动挡,那么分别有多少辆
• 4.哪个城市二手车数量最多
• 5.获取深圳市最多的二手车品牌

#!/user/bin/env python
#-*-coding: utf-8-*-
#@Time           : 2020/9/15 9:38
#@Author         : GodSpeed
#@File           : Pandas实战02_03.py
#@Software       : PyCharm

import pandas as pd
import numpy as np

'''
实战3(可做)
读取北上广深瓜子二手车的数据
• 1.分别读取4个csv文件,然后合并多个csv文件
• 2.去重复数据,重新设置连续索引
• 3.汽车自动挡和手动挡,那么分别有多少辆
• 4.哪个城市二手车数量最多
• 5.获取深圳市最多的二手车品牌
'''

#判断是否存在重复值
def Judging_duplicate(df):
    '''

    :param df: 被判断的对象,类型为DataFrame
    :return: True表示存在,False表示不存在
    '''
    # 判断数据是否存在nan
    if df.duplicated().values.any():
        print('存在重复数据')
        return True
    else:
        print('不存在重复数据')
        return False


#1.分别读取4个csv文件,然后合并多个csv文件
bj_guzi_data = pd.read_csv('./瓜子/guazi_bj.csv')
print(bj_guzi_data.shape)
sh_guzi_data = pd.read_csv('./瓜子/guazi_sh.csv')
print(sh_guzi_data.shape)
gz_guzi_data = pd.read_csv("./瓜子/guazi_gz.csv")
print(gz_guzi_data.shape)
sz_guzi_data = pd.read_csv("./瓜子/guazi_sz.csv")
print(sz_guzi_data.shape)

'''
合并数据:行堆叠
'''
guzi_data = pd.concat((bj_guzi_data,sh_guzi_data,gz_guzi_data,sz_guzi_data),axis=0)
print(guzi_data.shape)

print(guzi_data.head())
print(guzi_data.info())
'''
<class 'pandas.core.frame.DataFrame'>
Int64Index: 7027 entries, 0 to 1496
Data columns (total 19 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0   title         7027 non-null   object 
 1   brand         7027 non-null   object 
 2   buy_time      6978 non-null   object 
 3   km            7027 non-null   float64
 4   speedbox      7027 non-null   object 
 5   displacement  7027 non-null   object 
 6   es_price      7027 non-null   float64
 7   new_price     7027 non-null   float64
 8   city          7027 non-null   object 
 9   year_type     7027 non-null   object 
 10  level         7027 non-null   object 
 11  suv           7027 non-null   int64  
 12  horsepower    7027 non-null   object 
 13  fuel          7027 non-null   object 
 14  length        7027 non-null   int64  
 15  width         7027 non-null   int64  
 16  height        7027 non-null   int64  
 17  owners        0 non-null      float64
 18  drive         7027 non-null   object 
dtypes: float64(4), int64(4), object(11)
memory usage: 796.0+ KB
None

Process finished with exit code 0

'''
#2.去重复数据,重新设置连续索引
if Judging_duplicate(guzi_data):
    print('存在重复值')
    # 删除重复数据
    guzi_data.drop_duplicates(inplace=True)
else:
    print('不存在重复值')

print(guzi_data)
'''
                            title    brand buy_time  ...  height owners drive
0          大众 宝来 2014款 1.6L 自动时尚型    一汽-大众  2014-08  ...    1467    NaN  前置前驱
1         福特 福睿斯 2015款 1.5L 自动时尚型     长安福特  2015-12  ...    1490    NaN  前置前驱
2          大众 速腾 2012款 1.6L 自动舒适型    一汽-大众  2012-05  ...    1482    NaN  前置前驱
3        奔驰C级 2011款 C 200 CGI 时尚型     北京奔驰  2013-01  ...    1444    NaN  前置后驱
4      大众 帕萨特 2013款 2.0TSI DSG御尊版     上汽大众  2013-11  ...    1472    NaN  前置前驱
...                           ...      ...      ...  ...     ...    ...   ...
1492    别克 君威 2015款 GS 2.0T 豪情运动版   上汽通用别克  2016-03  ...    1494    NaN  前置前驱
1493     雪佛兰 迈锐宝 2018款 530T 自动舒适版  上汽通用雪佛兰  2017-10  ...    1476    NaN  前置前驱
1494         丰田 锐志 2013款 2.5S 菁锐版     一汽丰田  2013-10  ...    1450    NaN  前置后驱
1495  日产 逍客 2011款 1.6XE 风 5MT 2WD     东风日产  2012-01  ...    1606    NaN  前置前驱
1496   丰田 卡罗拉 2014款 1.6L CVT GL-i     一汽丰田  2015-10  ...    1480    NaN  前置前驱

[7016 rows x 19 columns]
'''

#问题一共7016行,但是索引才1496说明索引有重复
print('前',guzi_data.index.max())
#解决方法:重置索引
print(list(range(7016)))
guzi_data.reset_index(inplace=True)
print(guzi_data)
'''
      index                        title    brand  ... height  owners drive
0         0       大众 宝来 2014款 1.6L 自动时尚型    一汽-大众  ...   1467     NaN  前置前驱
1         1      福特 福睿斯 2015款 1.5L 自动时尚型     长安福特  ...   1490     NaN  前置前驱
2         2       大众 速腾 2012款 1.6L 自动舒适型    一汽-大众  ...   1482     NaN  前置前驱
3         3     奔驰C级 2011款 C 200 CGI 时尚型     北京奔驰  ...   1444     NaN  前置后驱
4         4   大众 帕萨特 2013款 2.0TSI DSG御尊版     上汽大众  ...   1472     NaN  前置前驱
...     ...                          ...      ...  ...    ...     ...   ...
7011   1492    别克 君威 2015款 GS 2.0T 豪情运动版   上汽通用别克  ...   1494     NaN  前置前驱
7012   1493     雪佛兰 迈锐宝 2018款 530T 自动舒适版  上汽通用雪佛兰  ...   1476     NaN  前置前驱
7013   1494         丰田 锐志 2013款 2.5S 菁锐版     一汽丰田  ...   1450     NaN  前置后驱
7014   1495  日产 逍客 2011款 1.6XE 风 5MT 2WD     东风日产  ...   1606     NaN  前置前驱
7015   1496   丰田 卡罗拉 2014款 1.6L CVT GL-i     一汽丰田  ...   1480     NaN  前置前驱

'''


#3.汽车自动挡和手动挡,那么分别有多少辆
# 选择没有缺失值的列
speedbox = guzi_data.groupby(by="speedbox").count()["brand"]
print(speedbox)
'''
speedbox
手动    1393
自动    5623
'''

#4.哪个城市二手车数量最多
# 按城市分组
city_g = guzi_data.groupby(by="city").count()["brand"].sort_values(ascending=False)
print(city_g)
'''
city
广州    2007
上海    1973
北京    1539
深圳    1497
'''

#5.获取深圳市最多的二手车品牌

sz_brand = sz_guzi_data.groupby(by="brand").count()["level"].sort_values(ascending=False)

print(sz_brand)
#argmax返回的是最大数的索引.argmax有一个参数axis,默认是0,表示第几维的最大值#print(df_catNames2.iloc[index,0])
print(type(sz_brand)) #<class 'pandas.core.series.Series'>
#print(sz_brand.index[0])


max_brand = sz_brand[sz_brand==max(sz_brand)]
print(max_brand.index.values)
#['东风日产' '长安福特']



【资源说明】 Python课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zip Python课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zip Python课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zip Python课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zip Python课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zipPython课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zipPython课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zipPython课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zipPython课程大作业二手车价格预测案例数据挖掘源码+数据集+实验报告+详细注释.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Narutolxy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值