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抓取网页图片并放到指定文件夹
Apr 24 Python
Django中使用group_by的方法
May 26 Python
独特的python循环语句
Nov 20 Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
django云端留言板实例详解
Jul 22 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
对python中的装包与解包实例详解
Aug 24 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
Django websocket原理及功能实现代码
Nov 14 Python
Python实现学生管理系统(面向对象版)
Jun 24 Python
pycharm无法导入lxml的解决办法
python某漫画app逆向
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
字典算法实现及操作 --python(实用)
如何利用python和DOS获取wifi密码
You might like
session在PHP大型web应用中的使用
2011/06/25 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
限制复选框的最大可选数
2006/07/01 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
详解python配置虚拟环境
2019/04/08 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
一名女生的自荐信
2013/12/08 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
人事科岗位职责范本
2014/03/02 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
一级电子管军用接收机测评
2022/04/05 无线电