二手车分析之数据处理
程序员文章站
2022-03-29 08:06:12
...
上面是没有处理的数据,处理内容如下:
-
车名carname -> carname
我把车名这个变量以空格为分隔符,取第一块的名字。 -
车行驶的时间长度cardate -> carmonth
把车子行驶的年份变成了多少个月。 -
车里程数carmile -> carmile
把文字去掉,数字变成数值型变量。 -
车现价carprice -> price
把文字去掉,数字变成数值型变量。 -
车原价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
上一篇: 数据结构 -- 栈和队列的实现及应用
下一篇: python算法与数据结构-栈