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系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
python简单程序读取串口信息的方法
Mar 13 Python
Django中更新多个对象数据与删除对象的方法
Jul 17 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
python 命令行传入参数实现解析
Aug 30 Python
python实现替换word中的关键文字(使用通配符)
Feb 13 Python
python列表删除和多重循环退出原理详解
Mar 26 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
python打包生成so文件的实现
Oct 30 Python
pycharm无法导入lxml的解决办法
python某漫画app逆向
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
字典算法实现及操作 --python(实用)
如何利用python和DOS获取wifi密码
You might like
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
Windows下PyCharm安装图文教程
2018/08/27 Python
Python如何定义有默认参数的函数
2020/08/10 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
质检员岗位职责
2013/12/17 职场文书
xxx同志考察材料
2014/02/07 职场文书
王老吉广告词
2014/03/20 职场文书
公司新年寄语
2014/04/04 职场文书
森林防火标语
2014/06/23 职场文书
售房协议书
2014/08/19 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
授权委托书公证
2014/09/14 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
教师节老师寄语
2015/05/28 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers