承接R&Python Data Science 系列:数据处理(1)继续介绍剩余的函数。
pandas发展了如此多年,所包含的功能已经覆盖了大部分数据清洗、分析场景,但仍然有着相当一部分的应用场景pandas中尚存空白亦或是现阶段的操作方式不够简洁方便。
最近有小伙伴推荐我多写写一个增强 pandas 功能的库—— pyjanitor 。他提供了许多实用功能,结合 pandas 使用能够大大提升我们的代码效率,那么我就针对这个库做一个系列教程。
大家好我是费老师,pandas在前不久更新的2.2版本中,针对Series对象新增了case_when()方法,用于实现类似SQL中经典的CASE WHEN语句功能,今天的文章中,我们就来get其具体使用方法~
近期写R代码,经常用dplyr::case_when结合stringr::str_detect进行条件判断。
数分小伙伴们都知道,SQL中的case when语句非常好用,尤其在加工变量的时候,可以按照指定的条件的进行赋值,并且结合其他嵌套用法还可以实现非常强大的功能。
如果不想安装额外包,用ifelse;如果是单个条件,用dplyr::if_else;如果多个条件,用dplyr::case_when (更可读)
sql 中的 过滤、分组、聚合、排序、表连接,在 pandas 中全都有对应方法。
https://doi.org/10.1038/s41588-023-01571-z
「代码链接」https://gist.github.com/AlbertRapp/438102c458fc8fbdffcb6feb76ff93f7 可以从网站直接获取,如果你下载网速很慢,可以从文末直接获取
情景:假如有下面这些基因 expr logFC p.value gene1 2.4667984 -2.9302068 0.07878848 gene2 1.4482891 -2.9680565 0.04675735 gene3 0.2481085 0.1787332 0.01685758 gene4 0.4244537 -1.0029163 0.02281603 gene5 1.6186835 -1.8350010 0.07323936 gene6 3.3965326
❝本节来介绍如何使用分面来绘制热图并填充特殊字符,下面通过一个小例子来进行展示; 加载R包 library(tidyverse) library(ggtext) library(ggforce) 数据清洗 ❝此处使用case_when来根据数值大小进行特殊字符的转换 ❞ df <- read_tsv("data.xls") %>% mutate( CL_evolution_sign = case_when( CL_evolution > 0 ~ "↑", CL_ev
昨天公众号后台有人留言作图,示例图如下 image.png 我选择使用R语言的ggplot2来实现,这个是箱线图和热图的拼接,右侧的热图可以借助geom_point()函数实现,将点的形状改为正方块,
https://www.nature.com/articles/s41586-022-05275-y
https://www.nature.com/articles/s41564-022-01270-1
https://www.science.org/doi/10.1126/science.abg7985
https://www.nature.com/articles/s41467-022-29144-4#code-availability
热图展示不同国家历届足球世界杯的成绩,非常有意思,时间跨度是1982年到2018年,入选国家的标准是最少参加过四次世界杯,我们今天来重复一下这个图,自己这个伪球迷也来了解一下足球世界杯的相关知识。
最近这张图片在社交媒体上火爆。乍一看可能并没有什么特殊的地方,但随后会注意到Y轴。Y轴上的标度在间距相等,但标度分布却并不均匀,有时代表30人,有时代表10人,有时甚至代表50人。这次我们可以通过代码绘制同样的图片。
https://bruigtp.github.io/flowchart/articles/flowchart.html
https://www.sciencedirect.com/science/article/pii/S0092867424004732
所以在当面对很复杂的业务场景时,如何有效的复用,管理和维护 SQL代码是非常重要的。Byzer 很好的解决了这方面的问题。除了本篇模块化编程以外,相辅相成的还有一个能力,就是模板编程的能力: Byzer Man:Byzer 模板编程入门。
1、TCGA的tumor和normal是表达数据里自带的,因此不需要特地下载临床信息,但是如果需要筛选样本,如特定的癌症亚类或相关的信息就需要临床信息
例如: Sample_Name = OR2, 就在其添加的carHLH列中的对应空格填写carHLH(+),
❝本节来复现「nature microbiology」上的一张环状热图,图表主要使用「ggplot2」,「ggtree」,「ggtreeExtra」等包来实现,此图的重点不在绘图方,而是在于如何构建绘图数据下面来进行具体介绍 Multi-modal molecular programs regulate melanoma cell state ❞ 加载R包 package.list=c("tidyverse","ggtreeExtra","ggtree","treeio","ggnewscale","pat
https://www.nature.com/articles/s41477-022-01146-6#Sec44
❝本节来介绍如何给图形添加渐变色背景,通过两个案例来进行展示; 加载R包 library(tidyverse) library(grid) library(RColorBrewer) library(ggh4x) library(scales) library(aplot) 导入数据 sports <- read_tsv("sports.xls") 数据清洗 plot_data <- sports %>% select(exp_men, exp_women, sports) %>% drop
前台传给我一个 documentId和List<UpdateDocumentAnswer> 对象给我。
一家金融贷款公司,需要了解用户贷款逾期未还的情况。该公司数据库中有一张用户"贷款逾期天数"表。
碎碎念:这个没啥好仔细展示的,含义也很直观,主要是要记住有这个函数,等需要用的时候回来找
为了帮助用户根据评分找到优质房源,现在领导要你找出分数(满分10分)在0-5分,5-7分,7-9分,9分及以上分别有多少。
这是一般的选择结构,而if嵌套就是在分支里面又包含了一个if语句。分支可以是复合语句,多条语句里面某一条语句可以是if选择、循环什么都可以。
2、使用is关键字,必须要搭配> < >= <> <=符号来写表达式
step1 对matrix进行转置:使gene名变为列名,将样本名转化为data.frame中的第一列
if - else语句,与其他语言相似,需要注意的是,go编译器需要else if、else两侧的}``{需要保持在同一行
“订单表”中记录了某店铺每个用户的订单数量。“客户编号”是用户的唯一识别。请问订单数在0-2、3-5、5单以上的各有多少人?
在做数据分析时,常常遇到的一个场景是,1,2,3 需要转换成其对应的"a","b","c"。比如在对结果进行分类统计的时候。
1.载入包 library(tidyverse) list.files() * * * 2.长宽数据转换 family_data <- read_tsv('C:/Users/Administrator/Documents/R_work/03_BD_L_microbiome/00_rawdata/outfiles/expr.relative_abundance.abfam.txt') head(family_data) # A tibble: 6 x 19 Family `Bd-1-1` `Bd-1-2`
这里有三个cluster,接下来找其marker基因,并合并成大的dataframe
领取专属 10元无门槛券
手把手带您无忧上云