推荐收藏!10个相见恨晚的Pandas函数,太好用了
liuian 2024-12-20 17:19 49 浏览
Pandas是Python最主要的数据分析库之一,它提供了大量数据结构和函数,能快速对数据进行处理和分析。
Pandas函数有很多,但在处理和分析数据的过程中,有的函数使用频率会更高一些。本篇就分享10个使用频率非常高的Pandas函数。
assign
assign直接向DataFrame对象添加新的一列,可以创建常数列、指定序列数据以及由已知列通过一定计算产生。
import numpy as np
import pandas as pd
data = {'A':[12,13,14,15],'B':[22,23,24,25]}
df = pd.DataFrame(data)
df
df.assign(C=[1,2,3,4]) #指定序列数据
df.assign(C=df.A+df.B) #根据已知列数据计算
eval
eval执行类似SQL语法中的计算,对已知列执行一定的计算时可用eval完成适用于数据量大的时候,效率会非常高。
import numpy as np
import pandas as pd
data = {'A':[12,13,14,15],'B':[22,23,24,25]}
df = pd.DataFrame(data)
df
df.eval('C=A+B') #根据已知列数据计算
add = pd.Series([1,2,3,4])
df.eval('C=A+@add') #通过@符号使用Python的局部变量,@符号表示其后紧随的是一个变量名称而不是列名称
query
query类似于SQL中where关键字的语法逻辑,按照DataFrame中某列的规则进行过滤操作,可以说是一个使用最频繁的数据筛选函数了。
import numpy as np
import pandas as pd
data = {'A':[12,13,14,15],'B':[22,23,24,25]}
df = pd.DataFrame(data)
df
df.query('A==15') #查询A列数值为5的行
df.query('A<15') #查询A列数值小于5的行
apply
apply函数本身不处理数据,而是作为处理数据的调度器。当我们使用for循环遍历DataFrame或Series,数据量大的话会非常慢。而用apply函数会非常快,它自动根据function遍历每一个数据,然后返回一个数据结构为Series的结果。
import pandas as pd
df = pd.DataFrame({'A':['bob','sos','bob','sos','bob','sos','bob','bob'],
'B':['one','one','two','three','two','two','one','three'],
'C':[3,1,4,1,5,9,2,6],
'D':[1,2,3,4,5,6,7,8]})
grouped = df.groupby('A')
for name,group in grouped: #用for遍历
print(name)
print(group)
d = grouped.apply(lambda x:x.describe()) #用apply函数
print(d)
insert
insert函数可以在指定位置插入一列数据。
import numpy as np
import pandas as pd
data = {'A':[12,13,14,15],'B':[22,23,24,25]}
df = pd.DataFrame(data)
df
add = pd.Series([1, 2, 3, 4])
df.insert(1, 'X', add) #插入列
print(df)
sample
当我们只需要DataFrame中的一部分时,就可以用sample函数从DataFrame中随机选取若干个行或列。
import numpy as np
import pandas as pd
data = {'A':[12,13,14,15],'B':[22,23,24,25]}
df = pd.DataFrame(data)
df
df.sample(2) #随机抽取2行
df.sample(frac=0.8) #随机抽取数据的80%
explode
当DataFrame中某一行其中一个元素包含多个同类型数据时,就可以用explode函数将一行数据展开成多行,只要一行代码,非常方便。
import numpy as np
import pandas as pd
data = {'A':[12,13,14,15],'B':[[21,22],23,24,[25,26,27]]}
df = pd.DataFrame(data)
df
df.explode('B') #将B列中有多个元素的数据拆分成多行
nunique
nunique函数用于计算行或列上唯一值的数量,即去重后计数。这个函数在实际的数据分析中,非常实用。
import numpy as np
import pandas as pd
data = {'name':['A','B','C','D','A','B'],'age':[21,22,23,23,21,22]}
df = pd.DataFrame(data)
df
df.name.nunique() #对name列进行唯一值计数 结果为:4
replace
replace函数是用来替换DataFrame中的值,赋以新的值。
import numpy as np
import pandas as pd
data = {'name':['A','B','C','D','A','B'],'age':[21,22,23,23,21,22]}
df = pd.DataFrame(data)
df
df.replace(['A','B'],['E','F'],inplace=True) #如果没有inplace=True的话,原数据不会改变
df
melt
melt函数是pivot函数的逆转操作函数,用于将宽表变成窄表,即将列名转换为列数据,重构DataFrame。这个操作我们在做数据分析时经常需要用到。
import numpy as np
import pandas as pd
data = {'city':['A','B','C','D'],
'2018data':[22,33,44,55],
'2019data':[12,34,67,89],
'2020data':[80,90,100,110],
'2021data':[120,132,144,178]}
df = pd.DataFrame(data)
df
pd.melt(df,id_vars=['city'],value_vars=['2018data','2019data','2020data','2021data'])
以上所说的10个Pandas函数,你最需要哪一个呢?或者还有其他想要实现的功能,可以评论区说给我听哦,下一次说不定就有相关的干货啦!
码代码不易,帮忙留下一个小反馈吧~~
相关推荐
- vue是什么东西(vue是干什么的)
-
首先看看官方网站是怎么解释的,如下:Vue(读作/vju/,类似于view)是一个用于构建用户界面的渐进式框架。与其他单体框架不同,Vue从一开始就被设计为可逐步采用的。核心库仅专注于视图层,易于...
- 超赞 vue2/3 可视化打印设计VuePluginPrint
-
今天来给大家推荐一款非常不错的Vue可拖拽打印设计器Hiprint。引入使用//main.js中引入安装import{hiPrintPlugin}from'vue-plugin-...
- 使用VuePress2.X构建个人知识博客,域名部署到GitHub Pages中
-
使用VuePress2.X构建个人知识博客,并且用个人域名部署到GitHubPages中什么是VuePressVuePress是一个以Markdown为中心的静态网站生成器。你可以使用Mar...
- 尤雨溪新品Vite的魔力,详解(尤雨溪新品vite的魔力,详解解析)
-
上篇《尤雨溪是个恶魔,Vite三天10更》谈到了Webpack这一系列打包工具出现的原因。这些工具的出现是为了解决ESModules模块系统本身的环境兼容问题、以及零散的模块文件导致的...
- 什么是VUE?vue有什么作用?(vue的主要用途)
-
什么是vue?Vue.js是一套构建用户界面的渐进式框架,Vue采用自下向上增量开发的设计,其核心库只关注视图层,易于上手,同时vue完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复...
- 10个Vue开发技巧「实践」(vue开发需要掌握哪些知识)
-
作者:WahFung转发链接:https://juejin.im/post/5e8a9b1ae51d45470720bdfa路由参数解耦一般在组件内使用路由参数,大多数人会这样做:exportdef...
- 刚搭好vuecli结果官网建议升级vite,于是就升级下
-
从vue-cli迁移到Vite进行迁移的主要原因是速度。Vite的开发服务器速度很快。因为它使用原生浏览器支持JavaScript模块,所以服务器启动时间是即时的。该方法还意味着无论应用程...
- 无所不能,将 Vue 渲染到嵌入式液晶屏
-
该文章转载自公众号@前端时刻,https://mp.weixin.qq.com/s/WDHW36zhfNFVFVv4jO2vrA前言之前看了雪碧大佬的将React渲染到嵌入式液晶屏觉得很有意思,R...
- 【开源】基于 Vue 和 Gin 开发的前后端分离的开源框架
-
项目介绍Gin-vue-admin是一个基于vue和gin开发的全栈前后端分离的开发基础平台,旨在快速搭建中小型项目。拥有jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能...
- Firefox正针对Vue.js进行优化,下版本响应速度将“显著提升”
-
IT之家9月7日消息,据Mozilla官方博客发文显示,Firefox浏览器正针对Vue.js进行优化,此前FireFox浏览器在面向Vue3时遇到了一些性能问题。▲图源...
- vue:生命周期钩子函数及顺序(vue3.0生命周期函数)
-
一、vue的钩子相关顺序Vue实例有一个完整的生命周期,在newVue()后,会初始化数据,如下://初始化的入口,各种初始化工作initMixin(Vue);//数据绑定的核心方法,包括常用...
- 使用 Pinia ORM 管理 Vue 中的状态
-
转载说明:原创不易,未经授权,谢绝任何形式的转载状态管理是构建任何Web应用程序的重要组成部分。虽然Vue提供了管理简单状态的技术,但随着应用程序复杂性的增加,处理状态可能变得更具挑战性。这就是为什么...
- 搭建Trae+Vue3的AI开发环境(vue ide 开发工具)
-
从2024年2025年,不断的有各种AI工具会在自媒体中火起来,号称各种效率王炸,而在AI是否会替代打工人的话题中,程序员又首当其冲。作为一个后端开发,这篇文章基于Trae工具,来创建和运行一个简单的...
- 如何在Vue3中使用Nuxt进行服务端渲染开发?
-
服务端渲染SSR(Server-SideRendering)是一种在服务器端生成网页内容的技术,这种实现方式与传统的客户端渲染CSR(Client-SideRendering)有所不同。在SSR中...
- 一篇文章说清 webpack、vite、vue-cli、create-vue 的区别
-
webpack、vite、vue-cli、create-vue这些都是什么?看着有点晕,不要怕,我们一起来分辨一下。先看这个表格:脚手架vue-clicreate-vue构建项目vite打包代码we...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
python使用fitz模块提取pdf中的图片
-
《人人译客》如何规划你的移动电商网站(2)
-
Jupyterhub安装教程 jupyter怎么安装包
-
- 最近发表
-
- vue是什么东西(vue是干什么的)
- 超赞 vue2/3 可视化打印设计VuePluginPrint
- 使用VuePress2.X构建个人知识博客,域名部署到GitHub Pages中
- 尤雨溪新品Vite的魔力,详解(尤雨溪新品vite的魔力,详解解析)
- 什么是VUE?vue有什么作用?(vue的主要用途)
- 10个Vue开发技巧「实践」(vue开发需要掌握哪些知识)
- 刚搭好vuecli结果官网建议升级vite,于是就升级下
- 无所不能,将 Vue 渲染到嵌入式液晶屏
- 【开源】基于 Vue 和 Gin 开发的前后端分离的开源框架
- Firefox正针对Vue.js进行优化,下版本响应速度将“显著提升”
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- uniapp textarea (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)