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实现的百度站长自动URL提交小工具
Jun 27 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
Apr 12 Python
Python之批量创建文件的实例讲解
May 10 Python
python提取图像的名字*.jpg到txt文本的方法
May 10 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
python 实现兔子生兔子示例
Nov 21 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
Jan 08 Python
python让函数不返回结果的方法
Jun 22 Python
python 实现表情识别
Nov 21 Python
Selenium 安装和简单使用的实现
Dec 04 Python
pycharm无法导入lxml的解决办法
python某漫画app逆向
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
字典算法实现及操作 --python(实用)
如何利用python和DOS获取wifi密码
You might like
php allow_url_include的应用和解释
2010/04/22 PHP
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
php实现删除指定目录下相关文件的方法
2014/10/20 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
js闭包用法实例详解
2016/12/13 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
Python中使用__new__实现单例模式并解析
2019/06/25 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书