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程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
低版本中Python除法运算小技巧
Apr 05 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
从0开始的Python学习016异常
Apr 08 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
Python函数装饰器原理与用法详解
Aug 16 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
python/golang 删除链表中的元素
Sep 14 Python
python实现简单的tcp 文件下载
Sep 16 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
关于的python五子棋的算法
May 02 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
PHP生成静态页面详解
2006/12/05 PHP
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
php实现分页显示
2015/11/03 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
python对视频画框标记后保存的方法
2018/12/07 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
python使用Geany编辑器配置方法
2020/02/21 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
大一军训感言
2014/01/09 职场文书
四群教育工作实施方案
2014/03/26 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
二审答辩状格式
2015/05/22 职场文书
Nginx 常用配置
2022/05/15 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers