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 相关文章推荐
讲解python参数和作用域的使用
Nov 01 Python
python使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
使用python实现滑动验证码功能
Aug 05 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
通过实例解析Python调用json模块
Dec 11 Python
Python3读写ini配置文件的示例
Nov 06 Python
python selenium 获取接口数据的实现
Dec 07 Python
Python获取指定日期是"星期几"的6种方法
Mar 13 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
浅谈ng-zorro使用心得
2018/12/03 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
自动化专业个人求职信范文
2013/12/30 职场文书
绿化先进工作者事迹材料
2014/01/30 职场文书
实用的简历自我评价
2014/03/06 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
公司员工离职感言
2015/08/03 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
创业计划书之熟食店
2019/10/16 职场文书