R 中的 Python 链接式数据整理

2024-07-01

我是 Python 新手,来自 R 环境。我喜欢 R 的一件事是能够编写代码,在一个可读的代码块中对数据进行多种转换

但对我来说,在 Python 中找到这种风格的代码非常困难,我想知道你们中的一些人是否可以指导在哪里可以找到有关该特定风格及其允许的功能的资源和参考。

例如我想转换R的这段代码:

library(dplyr)

  iris %>%
  select(-Petal.Width) %>%  #drops column Ptela.Width
  filter(Petal.Length > 2 | Sepal.Width > 3.1) %>% #Selects only rows where Criteria is met
  filter(Species %in% c('setosa', 'virginica')) %>% #Filters in Species selected
  mutate_if(is.numeric, scale) %>% #Numerical columns are scale into z-scores
  mutate(item = rep(1:3, length.out = n())) %>%  # a new col item is created and will carry the sequence 1,2,3 until the end of the dataste
  group_by(Species) %>% #groups by species
  summarise(n = n(), #summarises the size of each group
            n_sepal_over_1z = sum(Sepal.Width > 1), #counts the number of obs where Spepal.Width is over 1 z score
            nunique_item_petal_over_2z = n_distinct(item[Petal.Length>1]))
            #counst the unique elements in the col item where the values of the col Petal.length is over 1 z-score

那一小段代码能够完成我想做的所有事情,但如果我想用 Python 编写它,我似乎找不到一种方法来复制这种编码风格。我得到的最接近的是:

    import pandas as pd
from sklearn.preprocessing import StandardScaler

# Load the Iris dataset
iris = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data",
                   header=None, names=["Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species"])

# Filter and manipulate the data
filtered_data = iris[(iris["Petal.Length"] > 2) | (iris["Sepal.Width"] > 3.1)]
filtered_data = filtered_data[filtered_data["Species"].isin(["setosa", "virginica"])]

# Scale numeric columns using StandardScaler
numeric_columns = filtered_data.select_dtypes(include=[float])
scaler = StandardScaler()
scaled_data = pd.DataFrame(scaler.fit_transform(numeric_columns), columns=numeric_columns.columns)

# Add the "item" column
scaled_data["item"] = list(range(1, 4)) * (len(scaled_data) // 3)

# Group by "Species" and calculate summary statistics
summary_stats = scaled_data.groupby("Species").agg(
    n=pd.NamedAgg(column="Sepal.Length", aggfunc="size"),
    n_sepal_over_1z=pd.NamedAgg(column="Sepal.Width", aggfunc=lambda x: (x > 1).sum()),
    nunique_item_petal_over_2z=pd.NamedAgg(column="item", aggfunc=lambda x: x[scaled_data["Petal.Length"] > 1].nunique())
).reset_index()

print(summary_stats)

正如您所看到的,代码更多。如何用尽可能少的代码在 Python 中用一小块代码实现转换?我是新人,所以我的目的不是比较这两种编程语言,它们本身就很棒,但我只是想看到 Python 在链接或管道风格方面像 R 一样灵活且多样化。


不确定将 R 中使用的库移植到 Python 是否真的受益,但有一些选择。

https://www.r-bloggers.com/2022/05/ Three-packages-that-port-the-tidyverse-to-python/ https://www.r-bloggers.com/2022/05/three-packages-that-port-the-tidyverse-to-python/

对于那些喜欢 data.table 的人来说,还有一些选择:

https://datatable.readthedocs.io/en/latest/index.html https://datatable.readthedocs.io/en/latest/index.html https://datatable.readthedocs.io/en/latest/manual/comparison_with_rdatatable.html https://datatable.readthedocs.io/en/latest/manual/comparison_with_rdatatable.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中的 Python 链接式数据整理 的相关文章

  • Flask - 在请求之间将值存储在内存中

    我有一个单页应用程序 前端是 Angularjs 后端是 Flask 它允许用户上传文件 xlsx csv 然后交互式地分析 查询文件 本质上 用户在第一次上传时将文件加载到内存中 然后后续的 ajax 调用将访问内存中的该文件 我不确定如
  • 如何在Python中读取输入文件?

    如果我问了一个愚蠢的问题 请原谅我 但我相信我有问题 我最近开始学习Python 并尝试解决一些基于算法的问题 但一个问题是每个 Algo 挑战都附带一些输入文件 它通常由一些测试用例计数 测试用例等组成 例如 4 cases 1 2 5
  • TypedDict 中的 Python 任意键

    是否可以使用一组已知键创建 TypedDict 然后创建任意键的类型 例如 在 TypeScript 中 我可以这样做 interface Sample x boolean y number name string string Pytho
  • numpy 不规则跨步数组

    引用文档 http docs scipy org doc numpy reference arrays ndarray html internal memory layout of an ndarray关于内存中的 numpy 数组结构 N
  • Python/Excel - IOError: [Errno 2] 没有这样的文件或目录:

    尝试从文件中提取 xlsx 文档并将数据编译到单个工作表中 尽管文件存在但仍收到 IOError 程序如下 loop that pulls in files from folder import os create directory fr
  • 为什么追加会覆盖列表?

    我正在尝试 hackerrank 的一些问题并遇到了这个问题https www hackerrank com challenges list com经理 问题 https www hackerrank com challenges list
  • 以另一种风格制作一个带有形状和偏移参数的 numpy 数组

    我想以 3 元素实体 3d 位置 和单个元素 每个 x y z 坐标 的形式访问我的数组 经过一番研究后 我最终做了以下事情 gt gt gt import numpy as np gt gt gt arr np zeros 5 dtype
  • tqdm 进度条和 colorama 不能一起工作

    我想使用 colorama 但我已经在代码中使用了 tqdm Example import colorama as color import tqdm as tqdm without line it s working print colo
  • 关闭Python线程以防止内存泄漏

    如何关闭 Python 线程以确保线程内内存中的所有内容都从内存中清除 目前 我有一个通过以下方式加入的线程列表 for t in threadlist t join 5 这些线程最初是通过循环传递给每个线程的参数列表来创建的myfunc它
  • 如何在python中查找文件的mime类型?

    假设您想要将一堆文件保存在某个地方 例如保存在 BLOB 中 假设您想通过网页分发这些文件 并让客户端自动打开正确的应用程序 查看器 假设 浏览器通过 HTTP 响应中的 mime type 内容类型 标头确定要使用哪个应用程序 查看器 基
  • 在heroku上安装pdftotext库

    pdftotext 库是requirements txt 中的要求 在尝试推送到 heroku 时 出现以下错误 remote Running setup py install for pdftotext started remote Ru
  • Python Json 返回 AttributeError: __enter__

    为什么这会返回 AttributeError enter 排序方法只是根据列表的排序方式创建的字符串 当前时间使用 stfttime current time strftime Y m d H M S gmtime filename f K
  • groupCheckboxInput 的组标题

    In shinywidgets pickerInput您可以传递指定的数据列表 此处 nms to pickerInput从列表中创建标题和选项 例如 library shiny library shinyWidgets nms list
  • 任何方法来跟踪Python中的最后5个数据点

    所以我有一个包含多个数字的数组 随着我的脚本运行 越来越多的数字被附加到该数组中 但是 我对所有数字并不感兴趣 而只想跟踪最后 5 个数字 目前 我只是将所有数字存储在数组中 然而 这个数组变得非常大并且充满了不必要的信息 我考虑过创建一个
  • 卸载(删除)带有依赖项的 R 包

    我想尝试一些新的套餐 我安装了它 它需要很多依赖项 因此它安装了很多其他软件包 我尝试过 但没有留下深刻的印象 现在我想卸载该包 包括所有依赖项 有没有办法删除给定的包 包括系统中任何其他包不需要的所有依赖项 我在看 remove pack
  • 相当于 C++ 中用于缓冲读取的 python 生成器

    Guido Van Rossum 在此展示了 Python 的简单性article http neopythonic blogspot com 2008 10 sorting million 32 bit integers in 2mb h
  • 用python划分两个数据框

    我有两个数据框 df1 and df2 df1 TIMESTAMP eq1 eq2 eq3 2016 05 10 13 20 00 40 30 10 2016 05 10 13 40 00 40 10 20 df2 TIMESTAMP eq
  • 将函数应用于数据帧的每一行

    下面有什么更优雅的实现方式 我想应用一个函数 my function到数据帧 其中数据帧的每一行都包含函数的参数 然后我想将函数的输出写回数据帧行 results pd DataFrame for row in input panel it
  • Python 中 NLTK 的命名实体识别。识别网元

    我需要将单词分类为词性 比如动词 名词 副词等等 我用的是 nltk word tokenize to identify word in a sentence nltk pos tag to identify the parts of sp
  • 使用 auto.key 在晶格中符号填充颜色

    我正在使用一个情节xyplot in lattice R 15 2 格子 0 20 13 其中我想通过标记的形状来区分几个组 我需要使用一个向下的三角形 它只能作为空心符号使用 pch 25 与向上三角形不同 向上三角形可用作填充 pch

随机推荐

  • 将方法调用变成可观察事件,好主意吗?

    我正在学习如何融入IObservable进入我的代码 下面是一个简单类的两种不同方法 该类打印出最近的单词IObservable
  • 如何让appium测试在iOS上运行得更快?

    目前 我正在使用 appium 进行 iOS 应用程序测试 并且我已经在 mac mini 机器上用 Java 编写了测试 我正在使用 Jenkins CI 来运行我的测试 我想更快地运行我的测试 因为目前它在 iOS 模拟器上相当慢 例如
  • async for 的语义等价物

    从相对于的文档async for根据 Python 3 5 中的语法 我发现引入它是为了迭代可等待的迭代器 不过 在描述之后的语义等价物中 我没有得到一些东西 iter ITER iter type iter aiter iter runn
  • Swift - 创建“Array”类型的自定义类

    如何在 swift 中创建一个类型的自定义类Array 确切地说 我有一个自定义类型类Car 现在我想创建一个单例 它是一个数组Cars 因为我希望能够从我的应用程序中的任何位置访问它 我的解决方法是将我的单例定义为NSMutableArr
  • 获取循环的大缓冲通道块的长度

    我遇到了一种奇怪的行为 我正在使用缓冲通道 当使用大缓冲区时 整个程序执行将会阻塞 在下面的代码片段中 package main import fmt func main choke make chan string 150000 go f
  • 取票自旋锁互斥锁的内存顺序

    假设我有以下取票自旋锁互斥体实现 在 C 中使用 GCC 原子内置函数 据我了解 解锁函数中使用 释放 内存顺序是正确的 不过 我不确定锁定功能 因为这是一个取票互斥体 所以有一个字段指示要分发的下一个票号 还有一个字段指示当前哪个票号持有
  • 在 Visual Studio 2010 中的工具栏上显示当前功能

    我希望显示我的光标所在的当前功能 我非常怀念 VS6 的这个功能 我尝试过自定义工具栏 但在数百个工具栏项的迷宫中找不到它应该不足为奇 有人知道吗它叫什么以及它位于哪里 或者如果可能的话 让我举一个例子 我正在调试并看到变量设置为某个值 我
  • 字段前的 Groovy @ 符号

    Groovy 中字段名称前面的 意味着什么 对于某些类 我可以访问无法直接访问的私有字段 让我们看看组合闭包 http git codehaus org gitweb cgi p groovy git git a blob f src ma
  • IOS - Unicode 无符号

    我有一个用 C 编写的函数 我想将其转换为 Objective C 怎么做 public static string UnicodeUnSign string s const string uniChars const string koD
  • Python 套接字刷新

    我试图确保每次调用 socket send 函数时 我的缓冲区都会发送 刷新 到我的服务器 使用 unix 套接字在 C 中 根据我的理解 以及我在这个板上看到的 只需禁用 naggle 算法即可 应该这样做 但我的服务器仍然收到 4096
  • 我应该使用 Base64 编码还是 byte[] 在 .NET Web 服务中返回二进制数据

    我有一个简单的问题 通过 NET 中的 Web 服务公开二进制数据时 我应该返回字节数组还是简单地对二进制数据进行 base64 编码 这两种方法都有优点 缺点吗 主要受支持等 使用字节数组 通过 SOAP 协议 该字节数组将自动使用 ba
  • pycharm自动将制表符转换为空格

    我正在使用 pycharm IDE 进行 python 开发 它对于 django 代码来说工作得很好 因此怀疑将制表符转换为空格是默认行为 但是在 python IDE 中到处都会出现错误 因为它无法自动将制表符转换为空格 有没有办法实现
  • Bootstrap 3 +backbonejs - 切换导航未打开

    我在我的项目中使用 jquery backbonejs underscorejs 和 bootstrap 3 https izify com https izify com 这是我的源代码https github com datomnurd
  • 比较两个javascript数组?

    我想相互比较两个数组 看看是否匹配 如果匹配则执行某些操作 var answers new Array a b c d e var correct new Array a d do a for loop if there s a match
  • Kafka模板和Kafka生产者有什么区别?

    正如我所见 Kafka 模板内部使用了 Kafka 生产者 我只是想知道确切的区别是什么 此外 与 Kafka 生产者相比 我发现 Kafka 模板中提供了许多可用的 send 方法 请帮我解决一下 如果有人知道更多的话 生产者是一种模式
  • 提取PDF文档的特定部分[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有多个 30 个 PDF 文件 每个包含 48 96 页 所有页面的布局都是相同的 只有其他内容 数字 图表 背景 这些页面是光纤电缆测
  • WPF DatePicker 在更改月份时抛出异常

    好的 我正在 WPF Visual C 2010 Express 中处理这个项目 并且我有一些绑定到 DateTime 属性的 DatePickers 现在 如果我打开 选择器 并立即开始更改月份 那就没有问题了 但是 如果我选择一个日期然
  • 如何在 SwiftLint 上强制显示错误而不是警告?

    我的问题很简单 我该如何做所有warnings become errors on SwiftLint https github com realm SwiftLint 无需单独手动配置每条规则 要将 SwiftLint 集成到您的项目中 通
  • React:有状态类组件和使用 Hooks 的函数组件之间的区别?

    我刚刚创建了一个包含表达式的函数组件const state setState useState 现在我可以访问state and setState 这个有状态函数组件与有状态类组件非常相似 我只知道这个组件和典型的类组件之间的两个区别 当引
  • R 中的 Python 链接式数据整理

    我是 Python 新手 来自 R 环境 我喜欢 R 的一件事是能够编写代码 在一个可读的代码块中对数据进行多种转换 但对我来说 在 Python 中找到这种风格的代码非常困难 我想知道你们中的一些人是否可以指导在哪里可以找到有关该特定风格