课程链接:https://edu.cda.cn/course/1441
1. 导入相关包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#jupyter notebook一定运行这一行代码,在cell中显示图形
df=pd.read_csv('qunar_freetrip.csv',index_col=0)
df.head(2)
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 哈尔滨 | 北海 | 2208.0 | 650.0 | 哈尔滨-北海3天2晚 | 入住北海祥丰嘉年华大酒店 + 春秋航空往返机票 | 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 | 标准双人间(双床) 双床 不含早 1间2晚 | 春秋航空 9C8741 | 直飞 | 17:10-21:50 | 春秋航空 9C8742 | 直飞 | 10:20-15:05 |
1 | 成都 | 泸沽湖 | 1145.0 | 376.0 | 成都-泸沽湖3天2晚 | 入住7天酒店丽江古城中心店 + 成都航空往返机票 | 7天酒店丽江古城中心店 经济型 4.0分/5分 | 经济房-不含早-限时特... 其他 不含早 1间2晚 | 成都航空 EU2237 | 直飞 | 19:45-21:20 | 成都航空 EU2738 | 直飞 | 23:30-01:05 |
#查看数据形状
df.shape
(5100, 13)
#快速了解数据的结构
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5100 entries, 0 to 5099
Data columns (total 13 columns):
出发地 5098 non-null object
目的地 5099 non-null object
价格 5072 non-null float64
节省 5083 non-null float64
路线名 5100 non-null object
酒店 5100 non-null object
房间 5100 non-null object
去程航司 5100 non-null object
去程方式 5100 non-null object
去程时间 5100 non-null object
回程航司 5100 non-null object
回程方式 5100 non-null object
回程时间 5100 non-null object
dtypes: float64(2), object(11)
memory usage: 557.8+ KB
#快速查看数据的描述性统计信息
df.describe() #显示数值型数据的描述统计
价格 | 节省 | |
---|---|---|
count | 5072.000000 | 5083.000000 |
mean | 1765.714905 | 474.139878 |
std | 2580.129644 | 168.893780 |
min | 578.000000 | 306.000000 |
25% | 1253.000000 | 358.000000 |
50% | 1632.000000 | 436.000000 |
75% | 2028.250000 | 530.000000 |
max | 179500.000000 | 3500.000000 |
df.columns
Index(['出发地 ', ' 目的地', '价格 ', '节省', '路线名', '酒店', '房间', '去程航司', '去程方式', '去程时间',
'回程航司', '回程方式 ', '回程时间'],
dtype='object')
df.head(2)
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 哈尔滨 | 北海 | 2208.0 | 650.0 | 哈尔滨-北海3天2晚 | 入住北海祥丰嘉年华大酒店 + 春秋航空往返机票 | 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 | 标准双人间(双床) 双床 不含早 1间2晚 | 春秋航空 9C8741 | 直飞 | 17:10-21:50 | 春秋航空 9C8742 | 直飞 | 10:20-15:05 |
1 | 成都 | 泸沽湖 | 1145.0 | 376.0 | 成都-泸沽湖3天2晚 | 入住7天酒店丽江古城中心店 + 成都航空往返机票 | 7天酒店丽江古城中心店 经济型 4.0分/5分 | 经济房-不含早-限时特... 其他 不含早 1间2晚 | 成都航空 EU2237 | 直飞 | 19:45-21:20 | 成都航空 EU2738 | 直飞 | 23:30-01:05 |
col = df.columns.values
col
array(['出发地 ', ' 目的地', '价格 ', '节省', '路线名', '酒店', '房间', '去程航司', '去程方式',
'去程时间', '回程航司', '回程方式 ', '回程时间'], dtype=object)
col[0].strip() #strip函数一次只能处理一个数据
'出发地'
[x.strip() for x in col]
#strip去除前后空格
['出发地',
'目的地',
'价格',
'节省',
'路线名',
'酒店',
'房间',
'去程航司',
'去程方式',
'去程时间',
'回程航司',
'回程方式',
'回程时间']
df.columns = [x.strip() for x in col]
df.columns
Index(['出发地', '目的地', '价格', '节省', '路线名', '酒店', '房间', '去程航司', '去程方式', '去程时间',
'回程航司', '回程方式', '回程时间'],
dtype='object')
Duplicated函数功能:查找并显示数据表中的重复值
这里需要注意的是:
#第一行数据
#第二行数据和第一行一样
#从前向后就把第二行数据判断为重复值
#从后向前就把第一行数据判断为重复值
df.duplicated() #返回布尔型数据,告诉重复值的位置
0 False
1 False
2 False
3 False
4 False
5 False
6 False
...
5095 True
5096 False
5097 False
5098 False
5099 False
Length: 5100, dtype: bool
df.duplicated().sum()#说明有100个重复值
100
#查看重复的记录
df[df.duplicated()]
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
454 | 广州 | 黄山 | 1871.0 | 492.0 | 广州-黄山3天2晚 | 入住黄山汤口醉享主题酒店 + 南方航空往返机票 | 黄山汤口醉享主题酒店 舒适型 4.8分/5分 | 睫毛弯弯(大床) 大床 不含早 1间2晚 | 南方航空 CZ3627 | 直飞 | 19:20-21:15 | 南方航空 CZ3628 | 直飞 | 22:05-23:50 |
649 | 济南 | 长沙 | 1134.0 | 360.0 | 济南-长沙3天2晚 | 入住长沙喜迎宾华天大酒店 + 山东航空往返机票 | 长沙喜迎宾华天大酒店 高档型 3.7分/5分 | 特惠双间(特惠抢购)(... 双床 不含早 1间2晚 | 山东航空 SC1185 | 直飞 | 18:40-20:50 | 山东航空 SC1186 | 直飞 | 10:20-12:15 |
685 | 青岛 | 重庆 | 1474.0 | 420.0 | 青岛-重庆3天2晚 | 入住怡家丽景酒店重庆垫江店 + 山东航空/华夏航空往返机票 | 怡家丽景酒店重庆垫江店 舒适型 4.3分/5分 | 法式房(内宾)(无窗)... 大床 不含早 1间2晚 | 山东航空 SC4709 | 经停 | 19:30-00:05 | 华夏航空 G54710 | 经停 | 18:00-22:25 |
852 | 北京 | 哈尔滨 | 1450.0 | 368.0 | 北京-哈尔滨3天2晚 | 入住哈尔滨水逸城市酒店 + 南方航空/大新华航空往返机票 | 哈尔滨水逸城市酒店 舒适型 4.6分/5分 | 标准间-【预付特惠】独... 双床 双早 1间2晚 | 南方航空 CZ6202 | 直飞 | 22:20-00:20 | 大新华航空 CN7150 | 直飞 | 22:50-00:55 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
5066 | 哈尔滨 | 西安 | 1843.0 | 450.0 | 哈尔滨-西安3天2晚 | 入住西安铁通商务酒店贵宾楼 + 天津航空/东方航空往返... | 西安铁通商务酒店贵宾楼 舒适型 4.2分/5分 | 标准间(持房卡尊享清凉... 双床 不含早 1间2晚 | 天津航空 GS7584 | 经停 | 12:30-17:40 | 东方航空 MU2211 | 经停 | 08:45-13:25 |
5068 | 南京 | 成都 | 1922.0 | 552.0 | 南京-成都3天2晚 | 入住成都伊丽特酒店 + 东方航空/西藏航空往返机票 | 成都伊丽特酒店 高档型 4.5分/5分 | 行政标准间-含早立即确... 双床 双早 1间2晚 | 东方航空 MU2880 | 直飞 | 21:55-00:35 | 西藏航空 TV9839 | 直飞 | 06:30-08:55 |
5081 | 上海 | 青岛 | 769.0 | 354.0 | 上海-青岛3天2晚 | 入住青岛金中太大酒店 + 春秋航空/吉祥航空往返机票 | 青岛金中太大酒店 舒适型 4.8分/5分 | 特惠大床房[无早] 大床 不含早 1间2晚 | 春秋航空 9C8853 | 直飞 | 19:50-21:35 | 吉祥航空 HO1242 | 直飞 | 23:05-00:35 |
5095 | 宁波 | 九寨沟 | 2085.0 | 562.0 | 宁波-九寨沟3天2晚 | 入住黑水县达古冰山国际大酒店 + 成都航空/四川航空往... | 黑水县达古冰山国际大酒店 豪华型 3.9分/5分 | B区豪华标间(双床) 双床 不含早 1间2晚 | 成都航空 EU2730 | 经停 | 19:45-00:45 | 四川航空 3U8927 | 经停 | 07:55-12:15 |
100 rows × 13 columns
drop_duplicates函数功能是:删除数据表中的重复值,判断标准和逻辑与duplicated函数一样
df.drop_duplicates(inplace=True)
#inplace=True表示直接在源数据上进行操作
df.head()
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 哈尔滨 | 北海 | 2208.0 | 650.0 | 哈尔滨-北海3天2晚 | 入住北海祥丰嘉年华大酒店 + 春秋航空往返机票 | 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 | 标准双人间(双床) 双床 不含早 1间2晚 | 春秋航空 9C8741 | 直飞 | 17:10-21:50 | 春秋航空 9C8742 | 直飞 | 10:20-15:05 |
1 | 成都 | 泸沽湖 | 1145.0 | 376.0 | 成都-泸沽湖3天2晚 | 入住7天酒店丽江古城中心店 + 成都航空往返机票 | 7天酒店丽江古城中心店 经济型 4.0分/5分 | 经济房-不含早-限时特... 其他 不含早 1间2晚 | 成都航空 EU2237 | 直飞 | 19:45-21:20 | 成都航空 EU2738 | 直飞 | 23:30-01:05 |
df.shape
(5000, 13)
df.shape[0]
5000
range(df.shape[0])
range(0, 5000)
df.index = range(df.shape[0])
df.index
RangeIndex(start=0, stop=5000, step=1)
[40]:
df.describe().T
[40]:
count | mean | std | min | 25% | 50% | 75% | max | |
---|---|---|---|---|---|---|---|---|
价格 | 4972.0 | 1767.782381 | 2604.329780 | 578.0 | 1253.0 | 1633.0 | 2031.0 | 179500.0 |
节省 | 4983.0 | 474.490869 | 169.148391 | 306.0 | 358.0 | 436.0 | 532.0 | 3500.0 |
[41]:
#找出'价格'异常值
sta=(df['价格']-df['价格'].mean())/df['价格'].std()
[44]:
sta[:10]
[44]:
0 0.169033 1 -0.239133 2 0.358717 3 0.071503 4 -0.061353 5 -0.072104 6 -0.054825 7 -0.036394 8 -0.229534 9 -0.175393 Name: 价格, dtype: float64
[46]:
sta.abs()[:10]
[46]:
0 0.169033 1 0.239133 2 0.358717 3 0.071503 4 0.061353 5 0.072104 6 0.054825 7 0.036394 8 0.229534 9 0.175393 Name: 价格, dtype: float64
[48]:
sta.abs()>3
[48]:
0 False 1 False 2 False 3 False 4 False 5 False 6 False 7 False 8 False 9 False 10 False 11 False 12 False 13 False 14 False 15 False 16 False 17 False 18 False 19 False 20 False 21 False 22 False 23 False 24 False 25 False 26 False 27 False 28 False 29 False ... 4970 False 4971 False 4972 False 4973 False 4974 False 4975 False 4976 False 4977 False 4978 False 4979 False 4980 False 4981 False 4982 False 4983 False 4984 False 4985 False 4986 False 4987 False 4988 False 4989 False 4990 False 4991 False 4992 False 4993 False 4994 False 4995 False 4996 False 4997 False 4998 False 4999 False Name: 价格, Length: 5000, dtype: bool
[47]:
df[sta.abs()>3]
[47]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2763 | 杭州 | 九寨沟 | 179500.0 | 538.0 | 杭州-九寨沟3天2晚 | 入住九寨沟九乡宾馆 + 成都航空/长龙航空往返机票 | 九寨沟九乡宾馆 舒适型 4.3分/5分 | 特惠房(双床) 双床 不含早 1间2晚 | 成都航空 EU2206 | 经停 | 20:30-01:00 | 长龙航空 GJ8680 | 经停 | 20:25-00:50 |
[49]:
df.head(10)
[49]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 哈尔滨 | 北海 | 2208.0 | 650.0 | 哈尔滨-北海3天2晚 | 入住北海祥丰嘉年华大酒店 + 春秋航空往返机票 | 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 | 标准双人间(双床) 双床 不含早 1间2晚 | 春秋航空 9C8741 | 直飞 | 17:10-21:50 | 春秋航空 9C8742 | 直飞 | 10:20-15:05 |
1 | 成都 | 泸沽湖 | 1145.0 | 376.0 | 成都-泸沽湖3天2晚 | 入住7天酒店丽江古城中心店 + 成都航空往返机票 | 7天酒店丽江古城中心店 经济型 4.0分/5分 | 经济房-不含早-限时特... 其他 不含早 1间2晚 | 成都航空 EU2237 | 直飞 | 19:45-21:20 | 成都航空 EU2738 | 直飞 | 23:30-01:05 |
2 | 广州 | 沈阳 | 2702.0 | 618.0 | 广州-沈阳3天2晚 | 入住沈阳中煤宾馆 + 南方航空/深圳航空往返机票 | 沈阳中煤宾馆 舒适型 4.5分/5分 | 大床间(内宾) 大床 双早 1间2晚 | 南方航空 CZ6384 | 直飞 | 08:05-11:45 | 深圳航空 ZH9652 | 经停 | 08:20-13:05 |
3 | 上海 | 九寨沟 | 1954.0 | 484.0 | 上海-九寨沟3天2晚 | 入住红原芸谊大酒店 + 成都航空往返机票 | 红原芸谊大酒店 舒适型 4.6分/5分 | 豪华双床房[双早] 双床 双早 1间2晚 | 成都航空 EU6678 | 直飞 | 21:55-01:15 | 成都航空 EU6677 | 直飞 | 17:45-20:35 |
4 | 广州 | 天津 | 1608.0 | 422.0 | 广州-天津3天2晚 | 入住天津逸海明珠大酒店 + 奥凯航空/海南航空往返机票 | 天津逸海明珠大酒店 高档型 4.1分/5分 | 豪华双床房(预付) 双床 不含早 1间2晚 | 奥凯航空 BK2787 | 直飞 | 06:55-10:00 | 海南航空 HU7201 | 直飞 | 20:15-23:25 |
5 | 长春 | 青岛 | 1580.0 | 390.0 | 长春-青岛3天2晚 | 入住青岛康大豪生大酒店 + 南方航空往返机票 | 青岛康大豪生大酒店 豪华型 4.6分/5分 | 精选房(大床)[酒店★... 大床 不含早 1间2晚 | 南方航空 CZ3938 | 直飞 | 20:00-21:55 | 南方航空 CZ3963 | 直飞 | 15:40-17:30 |
6 | 济南 | 九寨沟 | 1625.0 | 396.0 | 济南-九寨沟3天2晚 | 入住阿坝松潘松林酒店 + 中国国航/成都航空往返机票 | 阿坝松潘松林酒店 舒适型 4.3分/5分 | 豪华标准间(双床) 双床 不含早 1间2晚 | 中国国航 CA4528 | 直飞 | 21:00-23:30 | 成都航空 EU2719 | 直飞 | 06:55-09:25 |
7 | 宁波 | 重庆 | 1673.0 | 404.0 | 宁波-重庆3天2晚 | 入住重庆运通假日酒店汽博中心店 + 南方航空/四川航空往... | 重庆运通假日酒店汽博中心店 舒适型 4.3分/5分 | 特惠房(大床) 大床 双早 1间2晚 | 南方航空 CZ8116 | 直飞 | 17:15-19:40 | 四川航空 3U8983 | 直飞 | 06:55-09:35 |
8 | 哈尔滨 | 南京 | 1170.0 | 340.0 | 哈尔滨-南京3天2晚 | 入住维也纳酒店南京南站汇景店 + 吉祥航空/厦门航空往... | 维也纳酒店南京南站汇景店 舒适型 4.4分/5分 | 特惠大床房(无窗)[双... 大床 双早 1间2晚 | 吉祥航空 HO1651 | 直飞 | 17:10-20:00 | 厦门航空 MF8067 | 直飞 | 19:40-22:25 |
9 | 深圳 | 厦门 | 1311.0 | 350.0 | 深圳-厦门3天2晚 | 入住厦门泊旅时尚酒店会展中心店 + 海南航空往返机票 | 厦门泊旅时尚酒店会展中心店 舒适型 4.0分/5分 | 时尚标准双床房 双床 双早 1间2晚 | 海南航空 HU7065 | 直飞 | 07:30-08:40 | 海南航空 HU7066 | 直飞 | 15:30-16:40 |
[51]:
sum(df.价格>df.节省)
[51]:
4952
[52]:
#找出'节省'异常值
df[df.节省>df.价格]
[52]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2904 | 武汉 | 西安 | 949.0 | 3500.0 | 武汉-西安3天2晚 | 入住西安西稍门大酒店 + 东方航空往返机票 | 西安西稍门大酒店 舒适型 3.3分/5分 | 标准间B(丝路之旅)(... 双床 不含早 1间2晚 | 东方航空 MU2194 | 直飞 | 21:50-23:30 | 东方航空 MU2462 | 直飞 | 19:35-21:20 |
3108 | 济南 | 大连 | 911.0 | 3180.0 | 济南-大连3天2晚 | 入住普兰店科洋大酒店 + 山东航空/厦门航空往返机票 | 普兰店科洋大酒店 舒适型 4.4分/5分 | 大床房(限量促销) 大床 不含早 1间2晚 | 山东航空 SC4916 | 直飞 | 19:45-20:50 | 厦门航空 MF8042 | 直飞 | 13:10-14:20 |
3660 | 沈阳 | 青岛 | 924.0 | 3200.0 | 沈阳-青岛3天2晚 | 入住星程酒店青岛台东步行街店 + 青岛航/南方航空往返机票 | 星程酒店青岛台东步行街店 舒适型 4.2分/5分 | 大床房(内宾)(提前1... 大床 不含早 1间2晚 | 青岛航 QW9780 | 直飞 | 22:35-00:10 | 南方航空 CZ6568 | 直飞 | 20:55-22:35 |
[53]:
pd.concat([df[df.节省>df.价格],df[sta.abs()>3]])
[53]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2904 | 武汉 | 西安 | 949.0 | 3500.0 | 武汉-西安3天2晚 | 入住西安西稍门大酒店 + 东方航空往返机票 | 西安西稍门大酒店 舒适型 3.3分/5分 | 标准间B(丝路之旅)(... 双床 不含早 1间2晚 | 东方航空 MU2194 | 直飞 | 21:50-23:30 | 东方航空 MU2462 | 直飞 | 19:35-21:20 |
3108 | 济南 | 大连 | 911.0 | 3180.0 | 济南-大连3天2晚 | 入住普兰店科洋大酒店 + 山东航空/厦门航空往返机票 | 普兰店科洋大酒店 舒适型 4.4分/5分 | 大床房(限量促销) 大床 不含早 1间2晚 | 山东航空 SC4916 | 直飞 | 19:45-20:50 | 厦门航空 MF8042 | 直飞 | 13:10-14:20 |
3660 | 沈阳 | 青岛 | 924.0 | 3200.0 | 沈阳-青岛3天2晚 | 入住星程酒店青岛台东步行街店 + 青岛航/南方航空往返机票 | 星程酒店青岛台东步行街店 舒适型 4.2分/5分 | 大床房(内宾)(提前1... 大床 不含早 1间2晚 | 青岛航 QW9780 | 直飞 | 22:35-00:10 | 南方航空 CZ6568 | 直飞 | 20:55-22:35 |
2763 | 杭州 | 九寨沟 | 179500.0 | 538.0 | 杭州-九寨沟3天2晚 | 入住九寨沟九乡宾馆 + 成都航空/长龙航空往返机票 | 九寨沟九乡宾馆 舒适型 4.3分/5分 | 特惠房(双床) 双床 不含早 1间2晚 | 成都航空 EU2206 | 经停 | 20:30-01:00 | 长龙航空 GJ8680 | 经停 | 20:25-00:50 |
[54]:
pd.concat([df[df.节省>df.价格],df[sta.abs()>3]]).index
[54]:
Int64Index([2904, 3108, 3660, 2763], dtype='int64')
[56]:
delindex = pd.concat([df[df.节省>df.价格],df[sta.abs()>3]]).index
[58]:
df.drop(delindex,inplace=True)
[59]:
df.shape
[59]:
(4996, 13)
[61]:
df.isnull().sum()
[61]:
出发地 2 目的地 1 价格 28 节省 17 路线名 0 酒店 0 房间 0 去程航司 0 去程方式 0 去程时间 0 回程航司 0 回程方式 0 回程时间 0 dtype: int64
[62]:
df[df.出发地.isnull()]
[62]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1850 | NaN | 烟台 | 647.0 | 348.0 | 大连-烟台3天2晚 | 入住烟台海阳黄金海岸大酒店 + 幸福航空/天津航空往返机票 | 烟台海阳黄金海岸大酒店 3.7分/5分 | 海景标准间(内宾)[双... 双床 双早 1间2晚 | 幸福航空 JR1582 | 直飞 | 10:05-11:05 | 天津航空 GS6402 | 直飞 | 16:30-17:25 |
1915 | NaN | 西安 | 1030.0 | 326.0 | 济南-西安3天2晚 | 入住西安丝路秦国际青年旅舍钟楼回民街店 + 华夏航空往返... | 西安丝路秦国际青年旅舍钟楼回民街店 经济型 4.4分/5分 | 标准间(独卫)-吃货天... 双床 不含早 1间2晚 | 华夏航空 G54963 | 直飞 | 07:10-08:55 | 华夏航空 G58858 | 直飞 | 23:10-00:55 |
[63]:
[str(x)[:2] for x in df.loc[df.出发地.isnull(),'路线名']]
[63]:
['大连', '济南']
[64]:
df.loc[df.出发地.isnull(),'出发地'] = [str(x)[:2] for x in df.loc[df.出发地.isnull(),'路线名']]
[65]:
df[df.出发地.isnull()]
[65]:
[66]:
df.出发地.isnull().sum()
[66]:
0
[67]:
df[df.目的地.isnull()]
[67]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1860 | 深圳 | NaN | 2149.0 | 494.0 | 深圳-大连3天2晚 | 入住大连黄金山大酒店 + 南方航空/东海往返机票 | 大连黄金山大酒店 舒适型 3.4分/5分 | 标准间 大/双床 不含早 1间2晚 | 南方航空 CZ6833 | 直飞 | 09:10-12:40 | 东海 DZ6242 | 经停 | 12:40-18:00 |
[69]:
str(df.loc[df.目的地.isnull(),'路线名'].values)[5:7]
[69]:
'大连'
[70]:
df.loc[df.目的地.isnull(),'目的地'] = str(df.loc[df.目的地.isnull(),'路线名'].values)[5:7]
[72]:
round(df['价格'].mean(),0)
[72]:
1733.0
[73]:
#处理价格缺失值
df['价格'].fillna(round(df['价格'].mean(),0),inplace=True)
[74]:
#处理节省缺失值
df['节省'].fillna(round(df['节省'].mean(),0),inplace=True)
[75]:
df.isnull().sum()
[75]:
出发地 0 目的地 0 价格 0 节省 0 路线名 0 酒店 0 房间 0 去程航司 0 去程方式 0 去程时间 0 回程航司 0 回程方式 0 回程时间 0 dtype: int64
[109]:
# 如果我们想要在一系列文本提取信息,可以使用正则表达式
# 正则表达式通常被用来检索某个规则的文本
[77]:
df.head(10)
[77]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 哈尔滨 | 北海 | 2208.0 | 650.0 | 哈尔滨-北海3天2晚 | 入住北海祥丰嘉年华大酒店 + 春秋航空往返机票 | 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 | 标准双人间(双床) 双床 不含早 1间2晚 | 春秋航空 9C8741 | 直飞 | 17:10-21:50 | 春秋航空 9C8742 | 直飞 | 10:20-15:05 |
1 | 成都 | 泸沽湖 | 1145.0 | 376.0 | 成都-泸沽湖3天2晚 | 入住7天酒店丽江古城中心店 + 成都航空往返机票 | 7天酒店丽江古城中心店 经济型 4.0分/5分 | 经济房-不含早-限时特... 其他 不含早 1间2晚 | 成都航空 EU2237 | 直飞 | 19:45-21:20 | 成都航空 EU2738 | 直飞 | 23:30-01:05 |
2 | 广州 | 沈阳 | 2702.0 | 618.0 | 广州-沈阳3天2晚 | 入住沈阳中煤宾馆 + 南方航空/深圳航空往返机票 | 沈阳中煤宾馆 舒适型 4.5分/5分 | 大床间(内宾) 大床 双早 1间2晚 | 南方航空 CZ6384 | 直飞 | 08:05-11:45 | 深圳航空 ZH9652 | 经停 | 08:20-13:05 |
3 | 上海 | 九寨沟 | 1954.0 | 484.0 | 上海-九寨沟3天2晚 | 入住红原芸谊大酒店 + 成都航空往返机票 | 红原芸谊大酒店 舒适型 4.6分/5分 | 豪华双床房[双早] 双床 双早 1间2晚 | 成都航空 EU6678 | 直飞 | 21:55-01:15 | 成都航空 EU6677 | 直飞 | 17:45-20:35 |
4 | 广州 | 天津 | 1608.0 | 422.0 | 广州-天津3天2晚 | 入住天津逸海明珠大酒店 + 奥凯航空/海南航空往返机票 | 天津逸海明珠大酒店 高档型 4.1分/5分 | 豪华双床房(预付) 双床 不含早 1间2晚 | 奥凯航空 BK2787 | 直飞 | 06:55-10:00 | 海南航空 HU7201 | 直飞 | 20:15-23:25 |
5 | 长春 | 青岛 | 1580.0 | 390.0 | 长春-青岛3天2晚 | 入住青岛康大豪生大酒店 + 南方航空往返机票 | 青岛康大豪生大酒店 豪华型 4.6分/5分 | 精选房(大床)[酒店★... 大床 不含早 1间2晚 | 南方航空 CZ3938 | 直飞 | 20:00-21:55 | 南方航空 CZ3963 | 直飞 | 15:40-17:30 |
6 | 济南 | 九寨沟 | 1625.0 | 396.0 | 济南-九寨沟3天2晚 | 入住阿坝松潘松林酒店 + 中国国航/成都航空往返机票 | 阿坝松潘松林酒店 舒适型 4.3分/5分 | 豪华标准间(双床) 双床 不含早 1间2晚 | 中国国航 CA4528 | 直飞 | 21:00-23:30 | 成都航空 EU2719 | 直飞 | 06:55-09:25 |
7 | 宁波 | 重庆 | 1673.0 | 404.0 | 宁波-重庆3天2晚 | 入住重庆运通假日酒店汽博中心店 + 南方航空/四川航空往... | 重庆运通假日酒店汽博中心店 舒适型 4.3分/5分 | 特惠房(大床) 大床 双早 1间2晚 | 南方航空 CZ8116 | 直飞 | 17:15-19:40 | 四川航空 3U8983 | 直飞 | 06:55-09:35 |
8 | 哈尔滨 | 南京 | 1170.0 | 340.0 | 哈尔滨-南京3天2晚 | 入住维也纳酒店南京南站汇景店 + 吉祥航空/厦门航空往... | 维也纳酒店南京南站汇景店 舒适型 4.4分/5分 | 特惠大床房(无窗)[双... 大床 双早 1间2晚 | 吉祥航空 HO1651 | 直飞 | 17:10-20:00 | 厦门航空 MF8067 | 直飞 | 19:40-22:25 |
9 | 深圳 | 厦门 | 1311.0 | 350.0 | 深圳-厦门3天2晚 | 入住厦门泊旅时尚酒店会展中心店 + 海南航空往返机票 | 厦门泊旅时尚酒店会展中心店 舒适型 4.0分/5分 | 时尚标准双床房 双床 双早 1间2晚 | 海南航空 HU7065 | 直飞 | 07:30-08:40 | 海南航空 HU7066 | 直飞 | 15:30-16:40 |
[79]:
df.酒店[:10]
[79]:
0 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 1 7天酒店丽江古城中心店 经济型 4.0分/5分 2 沈阳中煤宾馆 舒适型 4.5分/5分 3 红原芸谊大酒店 舒适型 4.6分/5分 4 天津逸海明珠大酒店 高档型 4.1分/5分 5 青岛康大豪生大酒店 豪华型 4.6分/5分 6 阿坝松潘松林酒店 舒适型 4.3分/5分 7 重庆运通假日酒店汽博中心店 舒适型 4.3分/5分 8 维也纳酒店南京南站汇景店 舒适型 4.4分/5分 9 厦门泊旅时尚酒店会展中心店 舒适型 4.0分/5分 Name: 酒店, dtype: object
[82]:
df.酒店.str.extract('(\d\.\d)分/5分',expand=True)[:10]
[82]:
0 | |
---|---|
0 | 4.7 |
1 | 4.0 |
2 | 4.5 |
3 | 4.6 |
4 | 4.1 |
5 | 4.6 |
6 | 4.3 |
7 | 4.3 |
8 | 4.4 |
9 | 4.0 |
[83]:
#提取酒店评分
df['酒店评分'] = df.酒店.str.extract('(\d\.\d)分/5分',expand=False)
#expand=False (return Index/Series)
#expand=True (return DataFrame)
[84]:
df.head(2)
[84]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | 酒店评分 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 哈尔滨 | 北海 | 2208.0 | 650.0 | 哈尔滨-北海3天2晚 | 入住北海祥丰嘉年华大酒店 + 春秋航空往返机票 | 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 | 标准双人间(双床) 双床 不含早 1间2晚 | 春秋航空 9C8741 | 直飞 | 17:10-21:50 | 春秋航空 9C8742 | 直飞 | 10:20-15:05 | 4.7 |
1 | 成都 | 泸沽湖 | 1145.0 | 376.0 | 成都-泸沽湖3天2晚 | 入住7天酒店丽江古城中心店 + 成都航空往返机票 | 7天酒店丽江古城中心店 经济型 4.0分/5分 | 经济房-不含早-限时特... 其他 不含早 1间2晚 | 成都航空 EU2237 | 直飞 | 19:45-21:20 | 成都航空 EU2738 | 直飞 | 23:30-01:05 | 4.0 |
[85]:
df.酒店[:10]
[85]:
0 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 1 7天酒店丽江古城中心店 经济型 4.0分/5分 2 沈阳中煤宾馆 舒适型 4.5分/5分 3 红原芸谊大酒店 舒适型 4.6分/5分 4 天津逸海明珠大酒店 高档型 4.1分/5分 5 青岛康大豪生大酒店 豪华型 4.6分/5分 6 阿坝松潘松林酒店 舒适型 4.3分/5分 7 重庆运通假日酒店汽博中心店 舒适型 4.3分/5分 8 维也纳酒店南京南站汇景店 舒适型 4.4分/5分 9 厦门泊旅时尚酒店会展中心店 舒适型 4.0分/5分 Name: 酒店, dtype: object
[87]:
df.酒店.str.extract(' (.+) ',expand=False)[:5]
[87]:
0 舒适型 1 经济型 2 舒适型 3 舒适型 4 高档型 Name: 酒店, dtype: object
[88]:
#提取酒店等级
df['酒店等级'] = df.酒店.str.extract(' (.+) ',expand=False)#+号表示的是贪婪模式,也就是所有的数据都要提取出来
[91]:
#提取天数信息
df['天数']=df.路线名.str.extract('(\d+)天\d晚',expand=False)
[92]:
df.head()
[92]:
出发地 | 目的地 | 价格 | 节省 | 路线名 | 酒店 | 房间 | 去程航司 | 去程方式 | 去程时间 | 回程航司 | 回程方式 | 回程时间 | 酒店评分 | 酒店等级 | 天数 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 哈尔滨 | 北海 | 2208.0 | 650.0 | 哈尔滨-北海3天2晚 | 入住北海祥丰嘉年华大酒店 + 春秋航空往返机票 | 北海祥丰嘉年华大酒店 舒适型 4.7分/5分 | 标准双人间(双床) 双床 不含早 1间2晚 | 春秋航空 9C8741 | 直飞 | 17:10-21:50 | 春秋航空 9C8742 | 直飞 | 10:20-15:05 | 4.7 | 舒适型 | 3 |
1 | 成都 | 泸沽湖 | 1145.0 | 376.0 | 成都-泸沽湖3天2晚 | 入住7天酒店丽江古城中心店 + 成都航空往返机票 | 7天酒店丽江古城中心店 经济型 4.0分/5分 | 经济房-不含早-限时特... 其他 不含早 1间2晚 | 成都航空 EU2237 | 直飞 | 19:45-21:20 | 成都航空 EU2738 | 直飞 | 23:30-01:05 | 4.0 | 经济型 | 3 |
2 | 广州 | 沈阳 | 2702.0 | 618.0 | 广州-沈阳3天2晚 | 入住沈阳中煤宾馆 + 南方航空/深圳航空往返机票 | 沈阳中煤宾馆 舒适型 4.5分/5分 | 大床间(内宾) 大床 双早 1间2晚 | 南方航空 CZ6384 | 直飞 | 08:05-11:45 | 深圳航空 ZH9652 | 经停 | 08:20-13:05 | 4.5 | 舒适型 | 3 |
3 | 上海 | 九寨沟 | 1954.0 | 484.0 | 上海-九寨沟3天2晚 | 入住红原芸谊大酒店 + 成都航空往返机票 | 红原芸谊大酒店 舒适型 4.6分/5分 | 豪华双床房[双早] 双床 双早 1间2晚 | 成都航空 EU6678 | 直飞 | 21:55-01:15 | 成都航空 EU6677 | 直飞 | 17:45-20:35 | 4.6 | 舒适型 | 3 |
4 | 广州 | 天津 | 1608.0 | 422.0 | 广州-天津3天2晚 | 入住天津逸海明珠大酒店 + 奥凯航空/海南航空往返机票 | 天津逸海明珠大酒店 高档型 4.1分/5分 | 豪华双床房(预付) 双床 不含早 1间2晚 | 奥凯航空 BK2787 | 直飞 | 06:55-10:00 | 海南航空 HU7201 | 直飞 | 20:15-23:25 | 4.1 | 高档型 | 3 |