|学案下载
搜索
    上传资料 赚现金
    Pandas数据处理复习学案
    立即下载
    加入资料篮
    Pandas数据处理复习学案01
    Pandas数据处理复习学案02
    Pandas数据处理复习学案03
    还剩4页未读, 继续阅读
    下载需要5学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    Pandas数据处理复习学案

    展开
    这是一份Pandas数据处理复习学案

    Pandas数据处理复习1、读取数据和保存数据pd.read_csv(filename):从CSV文件导入数据 pd.read_excel(filename):从Excel文件导入数据df.to_csv(filename):导出数据到CSV文件 df.to_excel(filename):导出数据到Excel文件选择数据df.head(n):查看DataFrame对象的前n行 df.tail(n):查看DataFrame对象的最后n行df[col]:根据列名选择某一列数据,并以Series的形式返回列,或者也可以用df.col,注意不需要加引号df[[col1, col2]]:选择多列数据,以DataFrame形式返回多列,多列的列名需要[ ]括起来根据条件进行选择,方法是:df[条件],例如df[df[col] > 0.5]:选择col列的值大于0.5的行,[ ]里面列数据要加上数据源,而不能只写列名,df[col > 0.5] 这样写是错误的如果索引是0开始的数字,则可以通过索引切片来选择相应的行df[0:] #第0行及之后的行,相当于df的全部数据,注意冒号是必须的df[:2] #第2行之前的数据(不含第2行)df[0:1] #第0行df[1:3] #第1行到第2行(不含第3行)df[-1:] #最后一行数据处理排序分组df.sort_values(col1):按照列col1排序数据,默认升序排列df.sort_values(col2, ascending=False):按照列col1降序排列数据df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据df.groupby(col):返回一个按列col进行分组的Groupby对象df.groupby([col1,col2]):返回一个按多列进行分组的Groupby对象删除空值的行或列(一般的题目很少看到)df.dropna():删除所有包含空值的行,括号中默认参数为axis=0,表示对行操作df.dropna(axis=1):删除所有包含空值的列计算,这些计算方法对原数据可以用,对分组排序后的数据都可以用df.describe():查看数据值列的汇总统计df.mean():返回所有列的均值 df.count():返回每一列中的非空值的个数df.max():返回每一列的最大值 df.min():返回每一列的最小值具体实例及结果(上表是源数据)1、读取数据df=pd.read_excel("销售数据.xlsx")print(df) #输出原始数据(结果显示,原来的列名-》列标题,并且自动添加索引,从0开始)书名 作者 译作者 出版社 原价 售价 数量 销售额0 双城记 查尔斯·狄更斯 李妍 中国华侨出版社 39.8 24.9 1.0 NaN1 局外人 阿尔贝·加缪 馨文 中国华侨出版社 22.8 14.3 1.0 NaN2 夜莺与玫瑰 奥斯卡·王尔德 张炽恒 开明出版社 46.0 28.8 1.0 NaN3 鲁滨孙漂流记 丹尼尔·笛福 辛怡 开明出版社 39.8 28.7 1.0 NaN4 Python基础教程 Magnus Lie Hetland 袁国忠 清华大学出版社 99.0 69.8 2.0 NaN5 算法导论 Thomas H.Cormen等 殷建平等 清华大学出版社 128.0 102.4 1.0 NaN2、计算(这种计算非常简单,不需要考虑一个个相乘,直接用列数据相乘就可以了,数据自己会一一对应。df.销售额=df.售价*df.数量 书名 作者 译作者 出版社 原价 售价 数量 销售额0 双城记 查尔斯·狄更斯 李妍 中国华侨出版社 39.8 24.9 1.0 24.91 局外人 阿尔贝·加缪 馨文 中国华侨出版社 22.8 14.3 1.0 14.32 夜莺与玫瑰 奥斯卡·王尔德 张炽恒 开明出版社 46.0 28.8 1.0 28.83 鲁滨孙漂流记 丹尼尔·笛福 辛怡 开明出版社 39.8 28.7 1.0 28.74 Python基础教程 Magnus Lie Hetland 袁国忠 清华大学出版社 99.0 69.8 2.0 139.65 算法导论 Thomas H.Cormen等 殷建平等 清华大学出版社 128.0 102.4 1.0 102.43、分别查看各种数据,注意数据都是有索引的 书名 作者0 双城记 查尔斯·狄更斯1 局外人 阿尔贝·加缪2 夜莺与玫瑰 奥斯卡·王尔德3 鲁滨孙漂流记 丹尼尔·笛福4 Python基础教程 Magnus Lie Hetland5 算法导论 Thomas H.Cormen等>>> df["书名"] >>>df[["书名","作者"]] 0 双城记1 局外人2 夜莺与玫瑰3 鲁滨孙漂流记4 Python基础教程5 算法导论Name: 书名, dtype: object带索引,且是Series结构 带索引,且是DataFrame结构>>> df.index #一维结构Int64Index([0, 1, 2, 3, 4, 5], dtype='int64')>>> df.columns #一维结构Index(['书名', '作者', '译作者', '出版社', '原价', '售价', '数量', '销售额'], dtype='object')>>> df.values #如果是DataFrame数据结果,即有多列数据,df.values应该是个二维数组array( [['双城记', '查尔斯·狄更斯', '李妍', '中国华侨出版社', 39.8, 24.9, 1, 24.9], ['局外人', '阿尔贝·加缪', '馨文', '中国华侨出版社', 22.8, 14.3, 1, 14.3], ['夜莺与玫瑰', '奥斯卡·王尔德', '张炽恒', '开明出版社', 46.0, 28.8, 1, 28.8], ['鲁滨孙漂流记', '丹尼尔·笛福', '辛怡', '开明出版社', 39.8, 28.7, 1, 28.7], ['Python基础教程', 'Magnus Lie Hetland', '袁国忠', '清华大学出版社', 99.0, 69.8, 2, 139.6], ['算法导论', 'Thomas H.Cormen等', '殷建平等', '清华大学出版社', 128.0, 102.4, 1, 102.4]] , dtype=object)如果要逐个访问这3个属性里面的值,一般用for循环配合,如下面代码双城记局外人夜莺与玫瑰鲁滨孙漂流记Python基础教程算法导论for i in df.index: #访问每个索引 print(i)扩展应用,利用索引输出每一本书的名字for i in df.index: print(df.at[i,"书名"]) #或者:print(df.["书名"][i])李妍馨文张炽恒辛怡袁国忠殷建平等或者直接通过遍历某列的值,比如实现上面同样的结果for i in df.书名: print(i)假如现在要通过values属性来访问某些值,例如for a in df.values: #用a代表值当中的每一项 print(a[2]) #输出译作者总结:由此我们一定要看清楚for后面的值范围,迭代变量每次代表的值是什么。4、数据计算(分组前)(常用函数的使用,这是数据的笼统使用,看看下面的几个框中的结果,最大值,最小值,统计个数不管是“文字”类型、“数值”类型,都有,但是平均分只有数值类型,文字数据自动忽略平均值了,假如原数据中只有一列是数值型数据,这样就可以得出了)>>> df.mean()原价 62.566667售价 44.816667数量 1.166667销售额 56.450000dtype: float64注意:文字列数据没有平均值,只有数值列才有,结果也是一维结构>>> df.count()书名 6作者 6译作者 6出版社 6原价 6售价 6数量 6销售额 6dtype: int64 一维>>> df.max() #每一列的最大值 书名 鲁滨孙漂流记作者 阿尔贝·加缪译作者 馨文出版社 清华大学出版社原价 128.0售价 102.4数量 2销售额 139.6dtype: object #一维结构 对于上面的元数据求值计算,我们可以加上具体列标题就可以计算指定的数值>>> df.原价.max()128.0>>> df["原价"].max()128.0>>> 数据分组后计算>>> df.groupby("出版社") #直接看不到数据,需要循环迭代('中国华侨出版社', 书名 作者 译作者 出版社 原价 售价 数量 销售额0 双城记 查尔斯·狄更斯 李妍 中国华侨出版社 39.8 24.9 1 24.91 局外人 阿尔贝·加缪 馨文 中国华侨出版社 22.8 14.3 1 14.3)('开明出版社', 书名 作者 译作者 出版社 原价 售价 数量 销售额2 夜莺与玫瑰 奥斯卡·王尔德 张炽恒 开明出版社 46.0 28.8 1 28.83 鲁滨孙漂流记 丹尼尔·笛福 辛怡 开明出版社 39.8 28.7 1 28.7)('清华大学出版社', 书名 作者 译作者 出版社 原价 售价 数量 销售额4 Python基础教程 Magnus Lie Hetland 袁国忠 清华大学出版社 99.0 69.8 2 139.65 算法导论 Thomas H.Cormen等 殷建平等 清华大学出版社 128.0 102.4 1 102.4)我们一般不直接用这些数据,而是用分组之后的数据进行计算统计,例如>>> g1=df.groupby("出版社").mean() #默认情况下,分组字段是作为索引的>>> g2=df.groupby("出版社",as_index=False).mean() #以出版社分组计算平均值,注意参数as_index=False>>> g1 原价 售价 数量 销售额出版社 中国华侨出版社 31.3 19.60 1.0 19.60开明出版社 42.9 28.75 1.0 28.75清华大学出版社 113.5 86.10 1.5 121.00>>> g2 #有新索引 出版社 原价 售价 数量 销售额0 中国华侨出版社 31.3 19.60 1.0 19.601 开明出版社 42.9 28.75 1.0 28.752 清华大学出版社 113.5 86.10 1.5 121.00>>> g1.index #分组依据就是索引Index(['中国华侨出版社', '开明出版社', '清华大学出版社'], dtype='object', name='出版社')>>> g2.index #分组依据不作为索引,索引重新生成,从0开始Int64Index([0, 1, 2], dtype='int64')而且仔细看输出数据,形式都不一样,特别是分组字段数据排序(以另外数据作为说明)>>> df5 #原数据 name team Q1 Q2 Q3 Q40 liver E 89 21 24 641 Arry C 36 37 37 572 Ack A 57 60 18 843 Eorge C 93 96 71 784 Oah D 65 49 61 86>>> df5.sort_values("team") #以一列数据升序 Name team Q1 Q2 Q3 Q42 Ack A 57 60 18 841 Arry C 36 37 37 573 Eorge C 93 96 71 784 Oah D 65 49 61 860 liver E 89 21 24 64>>> df5.sort_values(["team","Q1"]) #以两列数据排序 name team Q1 Q2 Q3 Q42 Ack A 57 60 18 841 Arry C 36 37 37 573 Eorge C 93 96 71 784 Oah D 65 49 61 860 liver E 89 21 24 64#以两列数据都降序 ,如果参数改成:ascending = [False,True],结果会怎样>>> df5.sort_values(by = ['team','Q1'], ascending = False) name team Q1 Q2 Q3 Q40 liver E 89 21 24 644 Oah D 65 49 61 863 Eorge C 93 96 71 781 Arry C 36 37 37 572 Ack A 57 60 18 84排序之后一般是为了取前面或后面几个>>>df2= df.sort_values("销售额",ascending=False) >>> df5.tail(2) #取尾几个 name team Q1 Q2 Q3 Q43 Eorge C 93 96 71 784 Oah D 65 49 61 86>>> df5.head(2) #取前几个 name team Q1 Q2 Q3 Q40 liver E 89 21 24 641 Arry C 36 37 37 57>>> df7=df5.drop("Q1",axis=1)>>> df7 name team Q2 Q3 Q40 liver E 21 24 641 Arry C 37 37 572 Ack A 60 18 843 Eorge C 96 71 784 Oah D 49 61 86#删除Q1列数据,必须加axis=1,否则出错几个非常重要的参数(以上面的数据为例)>>> df6=df5.drop(0,axis=0)>>> df6 name team Q1 Q2 Q3 Q41 Arry C 36 37 37 572 Ack A 57 60 18 843 Eorge C 93 96 71 784 Oah D 65 49 61 86 1、axis参数的使用2、as_index参数,是否作为索引,默认值是True,特别是分组的时候经常用到,上面有例子说明3、ignore_index,是否忽略索引,默认值是False,看例子(忽略自身的索引)>>> df5.append({"name":"fde","team":"D","Q1":45,"Q2":54,"Q3":38,"Q4":68},ignore_index=True)>>> df5[:2:3] #索引切片,可以选择指定范围内的行 name team Q1 Q2 Q3 Q40 liver E 89 21 24 64 name team Q1 Q2 Q3 Q40 liver E 89 21 24 641 Arry C 36 37 37 572 Ack A 57 60 18 843 Eorge C 93 96 71 784 Oah D 65 49 61 86>>> f5.sort_values("Q4",ignore_index=True) name team Q1 Q2 Q3 Q40 Arry C 36 37 37 571 liver E 89 21 24 642 Eorge C 93 96 71 783 Ack A 57 60 18 844 Oah D 65 49 61 86忽略了原来的索引,重新生成索引5 fde D 45 54 38 68>>> df5.sort_values("Q4") name team Q1 Q2 Q3 Q41 Arry C 36 37 37 570 liver E 89 21 24 643 Eorge C 93 96 71 782 Ack A 57 60 18 844 Oah D 65 49 61 86注意:原来的索引乱了补充axis=0(行),axis=1(列)相关例子并增加一列“total”,计算每个人的总分、最高分(数据显示这是一维的数据结构)>>> max=df.max(axis=1)>>> max0 1981 1672 2193 3384 261dtype: int64>>> total=df.sum(axis=1) #只计算数值类型的数据>>> total0 3961 3342 4383 6764 522dtype: int64>>> df["total"]=df[["Q1","Q2","Q3","Q4"]].sum(axis=1) #指定计算哪几列,注意参数axis=1 name team Q1 Q2 Q3 Q4 total0 liver E 89 21 24 64 1981 Arry C 36 37 37 57 1672 Ack A 57 60 18 84 2193 Eorge C 93 96 71 78 3384 Oah D 65 49 61 86 2614、ascending排序时默认升序,即ascending=True,前面有例子5、inplace 是否在原地修改数据,默认值时inplace=False,即不修改7.Excel 文件 cj.xlsx 中的数据包含“准考证号”、“姓名”、“学号”、“班级”、“总分”字 段,以及若干个数据行。则下列程序段执行后对象 df 中的数据将( A) import pandas as pd df=pd.read_excel("cj.xlsx") df.append({"准考证号":"2059618","姓名":"李雷","学号":"35","班级":"213","总分":560},ignore_index=True) df.drop("学号",axis=1) df.sort_values("班级") A.与从 Excel 中读取时保持一致,没有变化 B.减少“学号”列数据 C.按照“班级”升序排序 D.最后增加了一行“李雷”同学的相关数据作图:先确定数据来源,然后在选择作图类型,所以作图的时候务必要搞清楚作图前的数据样子,是分组前的原始数据,还是分组后的数据,分组依据是索引,还是作为普通数据,作图时一定要搞清楚x轴是第一列数据,后面都是y轴数据,当然你可以进行选择。书名 作者 译作者 出版社 原价 售价 数量 销售额0 双城记 查尔斯·狄更斯 李妍 中国华侨出版社 39.8 24.9 1.0 24.91 局外人 阿尔贝·加缪 馨文 中国华侨出版社 22.8 14.3 1.0 14.32 夜莺与玫瑰 奥斯卡·王尔德 张炽恒 开明出版社 46.0 28.8 1.0 28.83 鲁滨孙漂流记 丹尼尔·笛福 辛怡 开明出版社 39.8 28.7 1.0 28.74 Python基础教程 Magnus Lie Hetland 袁国忠 清华大学出版社 99.0 69.8 2.0 139.65 算法导论 Thomas H.Cormen等 殷建平等 清华大学出版社 128.0 102.4 1.0 102.4>>> df.plot(kind="bar") #第一列数据是x轴>>> plt.show()>>> g1=df.groupby("出版社").mean() #默认情况下,分组字段是作为索引的>>> g2=df.groupby("出版社",as_index=False).mean() #以出版社分组计算平均值,注意参数>>> g1.plot(kind="bar")>>> plt.show()>>> x=df["书名"]>>> y=df["销售额"]>>> plt.bar(x,y)>>> plt.show()自己再总结作图的两种方法。 书名作者译作者出版社原价售价数量销售额双城记查尔斯·狄更斯李妍中国华侨出版社39.824.91局外人阿尔贝·加缪馨文中国华侨出版社22.814.31夜莺与玫瑰奥斯卡·王尔德张炽恒开明出版社4628.81鲁滨孙漂流记丹尼尔·笛福辛怡开明出版社39.828.71机器学习周志华 清华大学出版社88662Python基础教程Magnus Lie Hetland袁国忠清华大学出版社9969.82算法导论Thomas H.Cormen等殷建平等清华大学出版社128102.41人工智能
    相关学案

    信息技术必修1 数据与计算3.2 Python语言程序设计导学案: 这是一份信息技术必修1 数据与计算3.2 Python语言程序设计导学案,共5页。

    高中信息技术浙教版 (2019)必修1 数据与计算2.2 算法的控制结构学案: 这是一份高中信息技术浙教版 (2019)必修1 数据与计算2.2 算法的控制结构学案,共2页。

    高中粤教版 (2019)2.2.1 信息系统的输入功能导学案: 这是一份高中粤教版 (2019)2.2.1 信息系统的输入功能导学案,共2页。

    免费资料下载额度不足,请先充值

    每充值一元即可获得5份免费资料下载额度

    今日免费资料下载份数已用完,请明天再来。

    充值学贝或者加入云校通,全网资料任意下。

    提示

    您所在的“深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载 10 份资料 (今日还可下载 0 份),请取消部分资料后重试或选择从个人账户扣费下载。

    您所在的“深深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载10份资料,您的当日额度已用完,请明天再来,或选择从个人账户扣费下载。

    您所在的“深圳市第一中学”云校通余额已不足,请提醒校管理员续费或选择从个人账户扣费下载。

    重新选择
    明天再来
    个人账户下载
    下载确认
    您当前为教习网VIP用户,下载已享8.5折优惠
    您当前为云校通用户,下载免费
    下载需要:
    本次下载:免费
    账户余额:0 学贝
    首次下载后60天内可免费重复下载
    立即下载
    即将下载:资料
    资料售价:学贝 账户剩余:学贝
    选择教习网的4大理由
    • 更专业
      地区版本全覆盖, 同步最新教材, 公开课⾸选;1200+名校合作, 5600+⼀线名师供稿
    • 更丰富
      涵盖课件/教案/试卷/素材等各种教学资源;900万+优选资源 ⽇更新5000+
    • 更便捷
      课件/教案/试卷配套, 打包下载;手机/电脑随时随地浏览;⽆⽔印, 下载即可⽤
    • 真低价
      超⾼性价⽐, 让优质资源普惠更多师⽣
    VIP权益介绍
    • 充值学贝下载 本单免费 90%的用户选择
    • 扫码直接下载
    元开通VIP,立享充值加送10%学贝及全站85折下载
    您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      充值到账1学贝=0.1元
      0学贝
      本次充值学贝
      0学贝
      VIP充值赠送
      0学贝
      下载消耗
      0学贝
      资料原价
      100学贝
      VIP下载优惠
      0学贝
      0学贝
      下载后剩余学贝永久有效
      0学贝
      • 微信
      • 支付宝
      支付:¥
      元开通VIP,立享充值加送10%学贝及全站85折下载
      您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      扫码支付0直接下载
      • 微信
      • 支付宝
      微信扫码支付
      充值学贝下载,立省60% 充值学贝下载,本次下载免费
        下载成功

        Ctrl + Shift + J 查看文件保存位置

        若下载不成功,可重新下载,或查看 资料下载帮助

        本资源来自成套资源

        更多精品资料

        正在打包资料,请稍候…

        预计需要约10秒钟,请勿关闭页面

        服务器繁忙,打包失败

        请联系右侧的在线客服解决

        单次下载文件已超2GB,请分批下载

        请单份下载或分批下载

        支付后60天内可免费重复下载

        我知道了
        正在提交订单

        欢迎来到教习网

        • 900万优选资源,让备课更轻松
        • 600万优选试题,支持自由组卷
        • 高质量可编辑,日均更新2000+
        • 百万教师选择,专业更值得信赖
        微信扫码注册
        qrcode
        二维码已过期
        刷新

        微信扫码,快速注册

        还可免费领教师专享福利「樊登读书VIP」

        手机号注册
        手机号码

        手机号格式错误

        手机验证码 获取验证码

        手机验证码已经成功发送,5分钟内有效

        设置密码

        6-20个字符,数字、字母或符号

        注册即视为同意教习网「注册协议」「隐私条款」
        QQ注册
        手机号注册
        微信注册

        注册成功

        下载确认

        下载需要:0 张下载券

        账户可用:0 张下载券

        立即下载
        账户可用下载券不足,请取消部分资料或者使用学贝继续下载 学贝支付

        如何免费获得下载券?

        加入教习网教师福利群,群内会不定期免费赠送下载券及各种教学资源, 立即入群

        返回
        顶部
        Baidu
        map