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自动化测试工具Splinter简介和使用实例
May 13 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
itchat和matplotlib的结合使用爬取微信信息的实例
Aug 25 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
matplotlib quiver箭图绘制案例
Apr 17 Python
python线程池如何使用
May 28 Python
Python生成器next方法和send方法区别详解
May 30 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
python接口自动化框架实战
Dec 23 Python
使用Python拟合函数曲线
Apr 14 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核心代码分析require和include的区别
2011/01/02 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
php计算十二星座的函数代码
2012/08/21 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
django之常用命令详解
2016/06/30 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
Python3数字求和的实例
2019/02/19 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
会话Bean的种类
2013/11/07 面试题
三下乡活动方案
2014/01/31 职场文书
森林防火宣传标语
2014/06/27 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
旅游项目合作意向书
2015/05/08 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书