去哪儿网预处理和分析

import numpy as np
import pandas as pd

df=pd.read_csv('C:/Users/xiaoli/data/qunar_freetrip.csv',encoding='gbk',sep='\t')
df.head()

df.describe()

df.info()

df.columns 

data=df.rename(columns=lambda x: x.strip())
data.head(2)

data.columns

data1=data[['出发地', '目的地', '价格', '节省', '路线名', '酒店']]
data1.head(2)

data1.isnull().sum()

data1.shape

data1[data1['出发地'].isnull()]

type(data1.路线名)

data1.路线名.str.slice(0,2)

data1.loc[data1['出发地'].isnull(),'路线名'].str.slice(0,2).values

data1.loc[data1['出发地'].isnull(),'出发地']

data1.loc[data1['出发地'].isnull(),'出发地']=data1.loc[data1['出发地'].isnull(),'路线名'].str.slice(0,2).values

data1.iloc[[1864,1930]]

data1.isnull().sum()

data1[data1['目的地'].isnull()]

data1.loc[data1['目的地'].isnull(),'目的地']=data1.loc[data1['目的地'].isnull(),'路线名'].str.slice(3,5).values

data1.iloc[1875]

data1.isnull().sum()

data2=data1.dropna()
data2

data2.isnull().sum()

data2.duplicated().sum()

data2=data2.drop_duplicates()
data2

data2.duplicated().sum()

data2.价格.describe()

data2[data2.价格>3000]

standard=(data2.价格-data2.价格.mean())/data2.价格.std()
data2[standard.abs()>3]

data3=data2.drop(data2[standard.abs()>3].index,axis=0)
data3

data3.info()

data3[['酒店名','类型','星级']]=data3.酒店.str.split(' ',2,True)

data3.head(2)

data3['星级']=data3.星级.str.slice(0,3).astype(np.float32)

data3.info()

data3.to_csv('data/1.csv',encoding='gbk',sep=',')

data3.价格.describe()

bins=[0,500,1000,2000,3000,4000,5000,6000,7000]
pd.cut(data3.价格,bins).value_counts()

pd.cut(data3.价格,bins).value_counts().plot.bar(rot=20)

dataCD=data3[data3.出发地=='成都']
dataCD

pd.cut(dataCD.价格,bins).value_counts().plot.bar(rot=20)

data3[data3['星级'].isnull()]              

data3.loc[data3['星级'].isnull(),'类型'].str.slice(0,3).values

data3.loc[data3['星级'].isnull(),'星级']=data3.loc[data3['星级'].isnull(),'类型'].str.slice(0,3).values
data3

data3.to_csv('data/2.csv',encoding='gbk',sep=',')

data3.星级.isnull().sum()

data3.星级

data3.info()

data3.星级.describe()

data3['星级']=data3.星级.str.slice(0,3).astype(np.float32)

data3.info()

bins=[0,1,2,3,4,5]
pd.cut(data3.星级,bins).value_counts()

pd.cut(data3.星级,bins).value_counts().plot.bar(rot=20)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值