去哪儿网数据预处理与分析

import numpy as np
import pandas as pd

df=pd.read_csv('C:/Users/15451/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)

上一篇:厦大C语言上机 1363 简单的数列求和


下一篇:leetcode 202 快乐数