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常用正则表达式符号浅析
Aug 13 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
pandas的相关系数与协方差实例
Dec 27 Python
简单了解Python多态与属性运行原理
Jun 15 Python
记录模型训练时loss值的变化情况
Jun 16 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 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 smarty模版引擎中的缓存应用
2009/12/11 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
javascript实现连续赋值
2015/08/10 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
Javascript的比较汇总
2016/07/25 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
详解Python中dict与set的使用
2015/08/10 Python
python对json的相关操作实例详解
2017/01/04 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
python实现ip地址的包含关系判断
2020/02/07 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
EJB timer的种类
2014/10/28 面试题
企业管理部经理岗位职责
2013/12/24 职场文书
给客户的道歉信
2014/01/13 职场文书
办公室主任职责范本
2014/03/07 职场文书
代办委托书怎么写
2014/08/01 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
公司开业致辞
2015/07/29 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python