pandas数据分析航空公司数据

本文介绍了如何使用pandas进行数据分析,包括数据读取、观察、筛选、清洗以及实战中的KMeans聚类。重点讲解了dataframe的操作,如数据筛选、查重去空、替换和格式转换,最后通过对航空公司数据进行KMeans聚类,分析用户飞行路程和折扣。
摘要由CSDN通过智能技术生成

pandas数据分析

pandas主要有两种数据结构,分别是dataframe和series,本次我们主要讲述的是dataframe的简单应用,从数据的读取到清洗。

数据读取与观察

  • 1.pandas读取文件的方法很多,其中 read_csv() 最为常用,相对应的就有 to_csv() 方法(df调用)
  • 2.数据的观察:
    • 2.1 dataframe中,类型主要有
    • 2.2 head(),tail() :显示df的前n个记录(默认是5),显示包括列名。
    • 2.2 info(),describe(),columns :显示df的全部信息,描述,还有列名。需要注意的是, describe() 只能生成对数字的描述,Object类型无法统计描述
    • 2.4 索引:在dataframe中不能够像Numpy那样直接通过df[i]来进行索引,需要通过df[i:j]来索引具体某几行(切片操作),或者索引某一列 df['column_name'].values 来返回某一列的数值
    • 2.5 切片:切片可以通过直接 df[i:j] 来实现行切片,返回第i:j-1行,也可以通过 .iloc 来切片或者重写覆盖(用法如下)
    import csv
    import pandas
    import numpy as np
    import sklearn
    import re
    from sklearn.cluster import KMeans
    import matplotlib.pyplot as plt
    import matplotlib
    %matplotlib inline
    f = open("机票综合查询.csv")
    data = pandas.read_csv(f,encoding='utf-8')
    data.head()
    data.tail()
    print(data.index)   ## 能够返回整张表中的记录数
    data.info()    ## info() 显示数据表的基本信息
    print(data.describe().T)   ## 描述统计(基于数字)
    data[0:2]       ## 返回0:2的共2行记录(切片)
    print(data.iloc[0:3,[1,3]])  #获取1列3列的1~3行数据
    #data.iloc[0:3,[1,3]]=2       ## 把2写到选择的位置,起到覆盖作用
    passages = data["乘机人"].values   ## 通过values把返回的series变成numpyde的ndarray形式
    data.columns
    RangeIndex(start=0, stop=125011, step=1)
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 125011 entries, 0 to 125010
    Data columns (total 7 columns):
    乘机人        124861 non-null object
    航程         124861 non-null object
    支付科目       118861 non-null object
    票面_折扣      124683 non-null float64
    票面_起飞时间    124861 non-null object
    票面_降落时间    124861 non-null object
    票面_舱位      125011 non-null object
    dtypes: float64(1), object(6)
    memory usage: 6.7+ MB
              count      mean       std  min  25%    50%    75%  max
    票面_折扣  124683.0  0.535882  0.358774  0.0  0.3  0.503  0.798  5.0
          航程  票面_折扣
    0  成都-南京  0.485
    1  西宁-广州  0.301
    2  广州-西宁  0.380
    
    Index(['乘机人', '航程', '支付科目', '票面_折扣', '票面_起飞时间', '票面_降落时间', '票面_舱位'], dtype='object')
3.数据筛选:
  • 3.1精确筛选:通过 isin 方法来筛选指定信息。
  • 3.2模糊筛选:通过正则表达式来进行匹配
    chose = ["成都-南京","西宁-广州"]
    result = data["航程"].isin(chose) #将要过滤的数据放入lis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值