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将html转成PDF的实现代码(包含中文)
Mar 04 Python
python中enumerate的用法实例解析
Aug 18 Python
python中获得当前目录和上级目录的实现方法
Oct 12 Python
python中format()函数的简单使用教程
Mar 14 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
np.random.seed() 的使用详解
Jan 14 Python
Django REST framwork的权限验证实例
Apr 02 Python
3分钟看懂Python后端必须知道的Django的信号机制
Jul 26 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
pycharm无法导入lxml的解决办法
python某漫画app逆向
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
字典算法实现及操作 --python(实用)
如何利用python和DOS获取wifi密码
You might like
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
php递归实现无限分类的方法
2015/07/28 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
JS常用算法实现代码
2016/11/14 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
Python 3中的yield from语法详解
2017/01/18 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
学校募捐倡议书
2014/05/14 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
党员个人承诺书
2015/04/27 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
PHP正则表达式之RCEService回溯
2022/04/11 PHP