ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1、pandas实战

2021-02-28 14:57:06  阅读:194  来源: 互联网

标签:实战 df 沈阳 金额 销售 贷款 2009 pandas


房天下案例:

​ 一、读取数据 ftx.xls

在这里插入图片描述

​ 一般读取信息,读取head()函数的信息就行了

在这里插入图片描述

​ 二、加载房天下数据集,提取时间为2009年的数据,使用分组函数,计算上海和沈阳的地区的销售平均值

​ 这里是要选出2009、上海和沈阳的关键字的数据,所以要先进行筛选,可以先查看显示某种信息的数据,然后再通过赋值来保存出来,再进行统计处理

​ 先查找2009年信息:

​ df_2009=df[df[‘年’]==2009],这里的是双等号,这里面要放的是检验符合的数据对象,而不是数值

​ 再查找销售区域为上海和沈阳的信息:

​ df_2009_1=df_2009[df_2009[‘销售区域’].isin([‘上海’,‘沈阳’])]

​ 上面的是属于过滤掉除了2009以外的其他年份的数据,再过滤除了上海和沈阳以外的数据,形成一个新的数据帧,来方便下面的分组只需要对其中一列进行操作。

​ 最后按照销售区域进行分组,求销售平均值

​ df_2009_1.groupby(‘销售区域’).agg(np.mean)[‘销售数量’]

在这里插入图片描述

​ 更方便的代码书写方式:把以上三条代码进行浓缩改进得到:

​ df[(df[‘年’]==2009)&(df[‘销售区域’].isin([‘上海’,‘沈阳’]))].groupby(‘销售区域’).agg(np.mean)[‘销售数量’]

​ 这里得到的也是一个映射,类似于用了上面的第一第二条代码进行逻辑运算比较然后加上第三条代码而已

​ 三、提取时间为2009年的数据,使用分组函数,计算上海和沈阳的地区的销售最大值

​ df[(df[‘年’]==2009)&(df[‘销售区域’].isin([‘上海’,‘沈阳’]))].groupby(‘销售区域’).agg(np.sum)[‘销售数量’]

​ 四、计算沈阳地区2009年每季度的销售总和

​ 数据中一开始并没有季度的信息,所以先要添加季度,可以使用map映射出一列新数据季度。

​ 先把已经有的1-3月份划为第一季度等等来设置

​ 三种修改数据的方式中,用自定义函数来判断进行修改比较好,因为涉及的判断多

​ def fn(x):

​ if x>0 and x<4:

​ return ‘s1’

​ elif x>3 and x<7:

​ return ‘s2’

​ elif x>6 and x<10:

​ return ‘s3’

​ else:

​ return ‘s4’

​ df [‘季度’]=df[‘月’]map(fn)

​ df.head()

​ 这里赋值后,并创建了新列名季度,然后借用以上的代码可以得到,

​ df[(df[‘年’]2009)&(df[‘销售区域’]‘沈阳’)].groupby(‘季度’).agg(np.sum)[‘销售数量’]

​ 先筛选出2009年和沈阳的,然后以季度分组,再计算各自的销量总和

​ 五、计算沈阳地区2009年每季度的销售均值

​ df[(df[‘年’]2009)&(df[‘销售区域’]‘沈阳’)].groupby(‘季度’).agg(np.mean)[‘销售数量’]

以上主要考察对自身的逻辑处理方式

银行:

​ 一、读入bank数据表 bank
在这里插入图片描述

​ 二、删除列,列名为每月归还额

​ del df[‘每月归还额’]

​ 三、对指定列做频数统计,列名为贷款期限

​ df[‘贷款期限’].value_counts()

​ 四、对指定列做分组统计,列名为还款状态。在此基础上,计算各分组贷款金额列的均值

​ df.groupby(‘还款状态’).agg(np.mean)[‘贷款金额’]

​ 五、统计贷款金额的均值、最小值、最大值、中位数、方差

​ df[‘贷款金额’].describe(),可以得到所有的数据类型

​ 如果只想得到部分的,可以一个个打印

​ s=df【‘贷款金额’】

​ print(‘均值’,s.mean())

​ print(‘最大值’,s.max())

​ 六、对数据进行排序,按照发放贷款日期(降序)贷款金额(升序)排序

​ df.sort_values([‘发放贷款日期’,‘贷款金额’],ascending=[False,True])

​ 这里贷款金额并没有完全升序,因为是先按发放贷款日期进行优先降序,然后再在相同的发放贷款日期中以贷款金额进行升序

​ 七、按照贷款金额除以贷款期限计算生成新列,并命名为每月归还额

​ df[‘每月归还额’]=df[‘贷款金额’]/df[‘贷款期限’]

在这里插入图片描述

​ 八、提取行(账户号在3000到4500之间)列(发放贷款日期和贷款金额)的数据

​ 先进行筛选出符合的df行数据: df1=df[(df[‘账户号’]>=3000)&(df[‘账户号’]<=4500)]
在这里插入图片描述

​ 然后 显示出需要的列数据:df1[[‘发放贷款日期’,‘贷款金额’]]

在这里插入图片描述

标签:实战,df,沈阳,金额,销售,贷款,2009,pandas
来源: https://blog.csdn.net/qwe863226687/article/details/114223447

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有