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中expandtabs()方法的使用
May 18 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
Python进阶之尾递归的用法实例
Jan 31 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
Python 3.8新特征之asyncio REPL
May 28 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
Python Matplotlib 基于networkx画关系网络图
Jul 10 Python
django中瀑布流写法实例代码
Oct 14 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
在终端启动Python时报错的解决方案
Nov 20 Python
pycharm无法导入lxml的解决办法
python某漫画app逆向
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
字典算法实现及操作 --python(实用)
如何利用python和DOS获取wifi密码
You might like
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
phpinfo的知识点总结
2019/10/10 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
window.showModalDialog使用手册
2007/01/11 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
json数据的列循环示例
2013/09/06 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
巴基斯坦购物网站:Goto
2019/03/11 全球购物
大学生村官事迹材料
2014/01/21 职场文书
抗震救灾标语
2014/06/26 职场文书
学校四风对照检查材料
2014/08/28 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
高效课堂教学反思
2016/02/24 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis