欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二手车分析之数据处理

程序员文章站 2022-03-29 08:06:12
...

二手车分析之数据处理
上面是没有处理的数据,处理内容如下:

  1. 车名carname -> carname
    我把车名这个变量以空格为分隔符,取第一块的名字。

  2. 车行驶的时间长度cardate -> carmonth
    把车子行驶的年份变成了多少个月。

  3. 车里程数carmile -> carmile
    把文字去掉,数字变成数值型变量。

  4. 车现价carprice -> price
    把文字去掉,数字变成数值型变量。

  5. 车原价newcarprice -> newprice
    把文字去掉,数字变成数值型变量,缺失值用0代替。

import pandas as pd
import re

car = pd.read_csv('wmt2-1.csv', sep=',', encoding='utf-8')

#车名的处理
car_name = car['carname']
namelist=[]
for name in car_name:
    name1 = name.split(' ', 1)
    namelist.append(name1[0])
#name = pd.Series(namelist)


#车子日期的处理
car_date = car['cardate']
monthlist=[]
datelist=[]
for date in car_date:
    datelist.append(date.split('-'))

list1=[]    
list2=[]
for i in datelist:
    for j in i:
        list1.append(int(j))
    list2.append(list1)
    list1=[]

for i in list2:
    if 11-i[1]>=0:
        month=(2019-i[0])*12+(11-i[1])
    else:    
        month=(2019-i[0])*12+(11-i[1])
    monthlist.append(month)
#month = pd.Series(monthlist)
    


#车子行驶路程的处理
car_mile = car['carmile(万公里)']
milelist=[]
for mile in car_mile:
    mile1 = re.sub(r'[\u4e00-\u9fa5]', '', mile)
    milelist.append(float(mile1))


#车价的处理
car_price = car['carprice(万)']
pricelist=[]
for price in car_price:
    pricelist.append(price)

new_price = car['newcarprice(万)']
newpricelist=[]
for newprice in new_price:
    try:
        newprice1 = re.sub(r'[\u4e00-\u9fa5]', '', newprice)
        newpricelist.append(float(newprice1))    
    except:
        newpricelist.append(0) 

df = pd.DataFrame({'carname': namelist, 'carmonth': monthlist, 'carmile' : milelist, 'price': pricelist, 'newprice': newpricelist})    
df.to_csv('afterclean_ershoucheshuju.csv', index_label='index')

处理后的数据如图:
二手车分析之数据处理
处理后的数据就可以开始做一些分析了。

补:在别处看到的几个数据处理的相关代码

import pandas as pd
df=pd.read_csv('wmt3.csv')
df.head()   #查看csv文件的前五行
df['carname1']=df["carname"].str[:6]    #将carname的6位地址码作为新列carname1插入
gp=df.groupby(["carname"])["carmile"].sum()      #根据carname进行分组后对carmile列进行sum求和计算
pv=df.pivot_table(["carmile"],index="carname",columns="",margins=True,aggfunc=np.sum,fill_value=0)     #数据透视图,对carmile列进行汇总计算,index为行,columns为列,margins=True增加一个全部行汇总,aggfunc=np.sum透视图中对carmile值进行sum计算,这里np是开头import的numpy as np,fill_value=0对空值进行0替换,否则没有数据会显示NaN
相关标签: 数据处理