Python中快速掌握Data Frame的常用操作


Posted in Python onMarch 31, 2021

掌握Data Frame的常用操作

一. 查看DataFrame的常用属性

DataFrame基础属性有:values(元素)、index(索引)、columns(列名) 、dtypes(类型)、size(元素个数)、ndim(维度数)和 shape(形状大小尺寸),还有使用T属性 进行转置

import pandas as pd
detail=pd.read_excel('E:\data\meal_order_detail.xlsx') #读取数据,使用read_excel 函数调用
# print(detail)
print("索引",detail.index)
print("所以 值 :",detail.values)
print("所以列名:",detail.columns)
print("数据类型:",detail.dtypes)
print("元素个数:",detail.size)
print("维度:",detail.ndim)
print("形状大小 尺寸:",detail.shape)
#使用T属性 进行转置
print("转置前的形状:",detail.shape)数据
print("转置后的形状:",detail.T.shape)

二. 查改增删DataFrame数据

查看访问DataFramezhon'的数据
(1.1)DataFrame数据的基本查看方式

#使用字典访问方式
order_id=detail['order_id']
print("订单详情表的order_id的形状:",order_id.shape)
#使用访问属性的方式 
dishes_name=detail.dishes_name
print("订单详情表中的dishes_name的形状:",dishes_name.shape)
#DataFrame 单列多行的数据获取
dishes_name5=detail['dishes_name'][:5]
print(dishes_name5)
#多列多行数据
orderDish=detail[['order_id','dishes_name']][:5]
print(orderDish)
#访问多行数据
order5=detail[:][1:6]
print("订单详情表中的1~6行元素的数据:\n",order5)

#使用DataFrame的head和tail方法获取多行数据
print('订单详情表中前5行数据:\n',detail.head())#head()里面没有参数的话,默认为5行
print('订单详情表中后5行数据:\n',detail.tail()) #tail()里面没有参数的话,默认为5行

(1.2) .DataFrame的loc和iloc访问方式;

dishes_name1=detail.loc[:,'dishes_name'] #DataFrame.loc[行索引名称或条件,列索引名称]
print("使用loc提取dishes_name列的size:",dishes_name1.size)
dishes_name2=detail.iloc[:,3] #DataFrame.iloc[行索引位置,列索引位置]
print("使用iloc提取第3列的size:",dishes_name2.size)

#使用loc、iloc 实现多列切片
orderDish1=detail.loc[:,['order_id','dishes_name']]
print(orderDish1.size)
orderDish2=detail.iloc[:,[1,3]]
print(orderDish2.size)
#使用loc、iloc 实现花式切片
print("列名为order_id和dishes_name 的行名为3的数据:\n",detail.loc[3,['order_id','dishes_name']])
print('列名为order_id和dishes_name 行名为2、3、4、5、6的数据为:\n',detail.loc[2:6,['order_id','dishes_name']])
print('列名1和3,行位置为3的数据为:\n',detail.iloc[3,[1,3]]) #这里为什么不可以loc函数,
               #因为loc函数传入的是列索引的名称(或行的名称或条件),而iloc传入的是位置
print('列位置为1和3,行位置为2,3,4,5,6的数据和:\n',detail.iloc[2:7,[1,3]])#这里是位置索引,7是取不到的
#使用loc和iloc函数实现条件切片
print('detail中order_id为458的dishes_name为:\n',detail.loc[detail['order_id']==458,['order_id','dishes_name']]) #使用了loc
print("detail中order_id为458 的第1、5列的数据为:\n",detail.iloc[(detail['order_id']==458).values,[1,5]])#values 获取元素 #使用iloc函数

(1.3).ix切片方法

#使用loc、iloc、ix 实现切片 比较(DataFrame.ix[行的索引或位置或条件,列索引名称和位置])
print('列名为dishes_name行名为2,3,4,5,6的数据为:\n',detail.loc[2:6,['dishes_name']])
print('列位置为5行名为2~6的数据为:\n',detail.iloc[2:6,5])
print('列位置为5行名为2~6的数据为:\n',detail.ix[2:6,5])

2.更改DataFame中的数据

#将order_id为458 的改成 45800
detail.loc[detail['order_id']==458,'order_id'] = 45800 #45800 这里 没有单引号的
print('更改后detail中的order_id为 458 的:\n',detail.loc[detail['order_id']==458,'order_id'])
print('更改后detail中的order_id为 45800 的:\n',detail.loc[detail['order_id']==45800,'order_id'])
detail.loc[detail['order_id']==45800,'order_id'] = 458

3.为DataFrame增添数据

#新增一列非定值
detail['payment']=detail['counts']*detail['amounts']
print('detail新增列payment的前5行数据为:\n',detail['payment'].head())
#新增一列定值
detail['pay_way']='现金支付'
print('detail新增列的前5行的数据为:\n',detail['pay_way'].head())
``4.删除某行或某列的数据(drop)
#删除某列
print('删除pay_way前 detail中的列索引为:\n',detail.columns)
detail.drop(labels='pay_way',axis=1,inplace=True)
print('删除pay_way后 detail中的列索引为:\n',detail.columns)
#删除某几行
print('删除1~10行 前 detail的长度:',len(detail))
detail.drop(labels=range(1,11),axis=0,inplace=True)
print('删除1~10行 后 detail的长度:',len(detail))

三. 描述分析DataFrame数据

1.数值特征的描述性统计
describe()函数描述性统计
2.类别类特征的描述性统计
object类型,categroy类型

到此这篇关于Python中快速掌握Data Frame的常用操作的文章就介绍到这了,更多相关Python Data Frame的常用操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python两种遍历字典(dict)的方法比较
May 29 Python
Python实现身份证号码解析
Sep 01 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
Mar 14 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
Django2.1.3 中间件使用详解
Nov 26 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
python模拟键盘输入 切换键盘布局过程解析
Aug 15 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
python迷宫问题深度优先遍历实例
Jun 20 Python
pycharm无法导入lxml的解决办法
python某漫画app逆向
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
字典算法实现及操作 --python(实用)
如何利用python和DOS获取wifi密码
You might like
PHP.MVC的模板标签系统(四)
2006/09/05 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
Javascript学习指南
2014/12/01 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
Cython 三分钟入门教程
2009/09/17 Python
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
linux 下selenium chrome使用详解
2020/04/02 Python
python遍历路径破解表单的示例
2020/11/21 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
校领导推荐信
2013/11/01 职场文书
幼儿发展评估方案
2014/06/11 职场文书
学生保证书格式
2015/02/27 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
五一晚会主持词
2015/07/01 职场文书
七年级生物教学反思
2016/02/20 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL