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中map、any、all函数用法分析
Apr 21 Python
在Python的Django框架中编写错误提示页面
Jul 22 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
Python字符串处理的8招秘籍(小结)
Aug 13 Python
Numpy的简单用法小结
Aug 28 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
关于python 的legend图例,参数使用说明
Apr 17 Python
Django contrib auth authenticate函数源码解析
Nov 12 Python
pycharm无法导入lxml的解决办法
python某漫画app逆向
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
字典算法实现及操作 --python(实用)
如何利用python和DOS获取wifi密码
You might like
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
Python sys.argv用法实例
2015/05/28 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
毕业生多媒体设计求职信
2013/10/12 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
初三语文教学反思
2016/03/03 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js