Python Pandas数据分析工具用法实例


Posted in Python onNovember 05, 2020

1、介绍

Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集,也是我们后期分析案例的神器。它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列

2、创建DataFrame

# -*- encoding=utf-8 -*-

import pandas

if __name__ == '__main__':
  pass
  test_stu = pandas.DataFrame(
    {'高数': [66, 77, 88, 99, 85],
     '大物': [88, 77, 85, 78, 65],
     '英语': [99, 84, 87, 56, 75]},
  )
  print(test_stu)
  stu = pandas.DataFrame(
    {'高数': [66, 77, 88, 99, 85],
     '大物': [88, 77, 85, 78, 65],
     '英语': [99, 84, 87, 56, 75]},
    index=['小红', '小李', '小白', '小黑', '小青'] # 指定index索引
  )
  print(stu)

运行

高数 大物 英语
0 66 88 99
1 77 77 84
2 88 85 87
3 99 78 56
4 85 65 75
  高数 大物 英语
小红 66 88 99
小李 77 77 84
小白 88 85 87
小黑 99 78 56
小青 85 65 75

3、读取CSV或Excel(.xlsx)进行简单操作(增删改查)

data.csv

Python Pandas数据分析工具用法实例

# -*- encoding=utf-8 -*-

import pandas

if __name__ == '__main__':
  pass
  data = pandas.read_csv('data.csv', engine='python') # 使用python分析引擎读取csv文件
  print(data.head(5)) # 显示前5行,
  print(data.tail(5)) # 显示后5行
  print(data) # 显示所有数据
  print(data['height']) # 显示height列
  print(data[['height', 'weight']]) # 显示height和weight列
  data.to_csv('write.csv') # 保存到csv文件
  data.to_excel('write.xlsx') # 保存到xlsx文件
  data.info() # 查看数据信息(总行数,有无空缺数据,类型)
  print(data.describe()) # (count非空值,mean均值、std标准差、min最小值、max最大值25%50%75%分位数。)
  data['新增列'] = range(0, len(data)) # 类似字典直接添加即可
  print(data)
  new_data = data.drop('新增列', axis=1, inplace=False)
  # 删除列,如果inplace为True则在源数据删除,返回None,否则返回新数据,不改动源数据
  print(new_data)
  data['体重+身高'] = data['height'] + data['weight']
  print(data)
  data['remark'] = data['remark'].str.replace('to', '') # 操作字符串
  print(data['remark'])
  data['birth'] = pandas.to_datetime(data['birth']) # 转为日期类型
  print(data['birth'])

4、根据条件进行筛选,截取

# -*- encoding=utf-8 -*-

import pandas

if __name__ == '__main__':
  pass
  data = pandas.read_csv('data.csv', engine='python') # 使用python分析引擎读取csv文件
  a = data.iloc[:12, ] # 截取0-12行,列全截
  # print(a)
  b = data.iloc[:, [1, 3]] # 行全截,列1,3
  # print(b)
  c = data.iloc[0:12, 0:4] # 截取行0-12,列0-4
  # print(c)
  d = data['sex'] == 1 # 查看性别为1(男)的
  # print(d)
  f = data.loc[data['sex'] == 1, :] # 查看性别为1(男)的
  # print(f)
  g = data.loc[:, ['weight', 'height']] # 选取身高体重
  # print(g)
  h = data.loc[data['height'].isin([166, 175]), :] # 选取身高166,175的数据
  # print(h)
  h1 = data.loc[data['height'].isin([166, 175]), ['weight', 'height']] # 选取身高166,175的数据
  # print(h1)
  i = data['height'].mean() # 均值
  j = data['height'].std() # 方差
  k = data['height'].median() # 中位数
  l = data['height'].min() # 最小值
  m = data['height'].max() # 最大值
  # print(i)
  # print(j)
  # print(k)
  # print(l)
  # print(m)
  n = data.loc[
    (data['height'] > data['height'].mean()) &
    (data['weight'] > data['weight'].mean()),
    :] # 身高大于身高均值,且体重大于体重均值,不能用and要用&如果是或用|
  print(n)

5、清Nan数据,去重,分组,合并

# -*- encoding=utf-8 -*-

import pandas

if __name__ == '__main__':
  pass
  sheet1 = pandas.read_excel('data.xlsx', sheet_name='Sheet1') # 读取sheet1
  # print(sheet1)
  # print('-------------------------')
  sheet2 = pandas.read_excel('data.xlsx', sheet_name='Sheet2') # 读取sheet2
  # print(sheet2)
  # print('-------------------------')
  a = pandas.concat([sheet1, sheet2]) # 合并
  # print(a)
  # print('-------------------------')
  b = a.dropna() # 删除空数据nan,有nan的就删除
  # print(b)
  # print('-------------------------')
  b1 = a.dropna(subset=['weight']) # 删除指定列的空数据nan
  # print(b1)
  # print('-------------------------')
  c = b.drop_duplicates() # 删除重复数据
  # print(c)
  # print('-------------------------')
  d = b.drop_duplicates(subset=['weight']) # 删除指定列的重复数据
  # print(d)
  # print('-------------------------')
  e = b.drop_duplicates(subset=['weight'], keep='last') # 删除指定列的重复数据,保存最后一个相同数据
  # print(e)
  # print('-------------------------')
  f = a.sort_values(['weight'], ascending=False) # 从大到小排序weight
  # print(f)
  g = c.groupby(['sex']).sum() # 根据sex分组,再求和
  # print(g)
  g1 = c.groupby(['sex'], as_index=False).sum() # 根据sex分组,再求和,但sex不作为索引
  # print(g1)
  g2 = c.groupby(['sex', 'weight']).sum() # 根据sex分组后再根据weight分组,再求和
  # print(g2)
  h = pandas.cut(c['weight'], bins=[80, 90, 100, 150, 200], ) # 根据区间分割体重
  print(h)
  # print('-------------------------')
  c['根据体重分割'] = h # 会有警告,未解决,但不影响结果
  print(c)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
python实现文件路径和url相互转换的方法
Jul 06 Python
python实现单向链表详解
Feb 08 Python
Python入门学习指南分享
Apr 11 Python
pandas 读取各种格式文件的方法
Jun 22 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
Mar 18 Python
Python爬虫学习之翻译小程序
Jul 30 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
Python中zip函数如何使用
Jun 04 Python
Python jieba结巴分词原理及用法解析
Nov 05 #Python
Python根据字符串调用函数过程解析
Nov 05 #Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 #Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 #Python
详解Django中异步任务之django-celery
Nov 05 #Python
Python Django路径配置实现过程解析
Nov 05 #Python
Python基于tkinter canvas实现图片裁剪功能
Nov 05 #Python
You might like
PHP中动态显示签名和ip原理
2007/03/28 PHP
php md5下16位和32位的实现代码
2008/04/09 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
php提取微信账单的有效信息
2018/10/01 PHP
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
Python之PyUnit单元测试实例
2014/10/11 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
详解Django中间件执行顺序
2018/07/16 Python
python得到电脑的开机时间方法
2018/10/15 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
Opencv求取连通区域重心实例
2020/06/04 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
厨房领班竞聘演讲稿
2014/04/23 职场文书
合作与交流自我评价
2015/03/09 职场文书
工作简历的自我评价
2019/05/16 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书