问题标签 [split-apply-combine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 基于变量对列进行操作
我有以下数据
我需要取m
2015 年和 2016 年对应值的差异,以显示 2015 年到 2016 年分配的成绩比例的差异。我想我可以reshape2::cast
这样做并ddplyr::summarise
计算差异,但我不确定如何首先使用cast
。
python - Pandas 使用过滤运行小计 - 应用和 Lambda?
我正在尝试构建一些东西,对于熊猫数据库中的每条记录,将显示给定列的总数,并显示给定列中在该记录日期之前发生的某些记录的总数。
请注意,比较应该是当前记录的 STARTDATE 与所有记录的 ENDDATE 相比(仅计算在当前期间之前结束的期间的利润)
我需要澄清这一点,因为 Diego Amicabile 在下面提出了一个非常漂亮的答案,不幸的是并没有让我到达我需要的地方(我最初发布的问题只有一个报告日期字段)
所以在这个数据框中,我希望最后有两列。总利润(或 sumall)和公司利润(或 sumco)
Sumall,第一条记录为 0,第二条记录为 -500(2017-01-01 之前的所有日期)第三条记录为 300(-500+800)等
Sumco 将是 0 ,直到我们获得第二条 IBM 记录,即 -500 。它在第三条 IBM 记录上保持 -500,因为第二条记录 (2017-03-03) 的结束时间在第三条记录的开始时间之后。
它应该如下所示:
错误如下:
r - 如何使用 dplyr 计算嵌套 data_frames 中的行数
这是一个愚蠢的示例数据框:
看起来像这样:
我想添加第三列N
,其条目等于data
. 我认为这会起作用:
怎么了?
python - 获取每个列值的最常见列
我想要每个数字最常见的字母。我尝试了各种各样的东西;不知道什么是正确的方法。
理想情况下,我希望最大限度地提高可读性。
r - JMP 拆分表的 tidyr 或 dplyr 等效项
JMP 有一个“分表”平台:
http ://www.jmp.com/support/help/Split_Columns.shtml
这是它的图像:
“拆分依据”成为列标题的一部分。
“拆分列”是展开的列。
“组”是保留的列。
我查看了一些链接/页面,但似乎无法在 R 中正确理解这一点。现在我必须将它整合到 JMP 中的宏中。
对我没有帮助的链接包括:
- 使用 dplyr 的 group_by 执行 split-apply-combine
- https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf
- 将数据框的一列拆分为多列
我需要将约 20k 行和约 30 列的表沿其中一列(0 到 13 之间的整数)拆分为约 1400 行,其中约 25 行拆分为 350。
一个不优雅但可重复的示例是拆分此汽车表
如何使用 tidyr 或 dplyr 等 R 库来执行此操作并保留 ~5 个非拆分列?
python - 用 Pandas GroupBy 找出每组的一半
我需要使用 选择数据框的一半groupby
,其中每个组的大小是未知的,并且可能因组而异。例如:
组的大小分别groupyby('participant_id')
为10、7、9 和participant_id
13、14、15。我需要的是只取每组的前一半(或地板(N/2))。
根据我对 Pandas 的(非常有限的)经验groupby
,它应该是这样的:
其中k_i
是每组大小的一半。是否有一个简单的解决方案来找到k_i
?
python - 如何使用 pandas groupby() 的 split-apply-combine 模式同时规范化多个列
我正在尝试规范化 pandas 数据表中的实验数据,该表包含具有数字可观察值(特征)的多列、具有日期和实验条件的列以及其他非数字条件(例如文件名)。
我想
- 使用拆分-应用-组合范式
- 使用子组的聚合统计数据在组内标准化
- 使用不同的归一化(例如除以控制均值、Z 分数)
- 将此应用于所有数值列(可观察值)
- 最后,生成一个增强数据表,它与原始数据表具有相同的结构,但有额外的列,例如对于 Observable1 列,应该添加一个列 normalized_Observable1
可以使用以下代码片段生成具有此结构的简化数据表:
看起来像这样
现在,对于每个实验日期,我都有不同的实验条件,但我总是有名为ctrl
. 我想要执行的标准化之一是计算(对于每个数字列)该日期的对照实验的平均值,然后将该日期的所有可观察值除以它们相应的平均值。
我可以使用以下方法快速计算一些按日期、按条件汇总的统计信息:
然后我想将这些汇总统计数据应用于每个实验日期的标准化:
并以如下方式应用规范化:
最后一步只是伪代码。这就是我正在努力解决的问题。我可以使用嵌套的 for 循环对数字列的日期、条件和列名进行规范化,但我是 split-apply-combine 范式的新手,我认为必须有一个简单的解决方案?非常感谢任何帮助。
python - 用组的中值替换数据框值
抱歉,如果这是重复,我没有找到类似的答案。
大图:我有一个带有 NaN 值的 df,我想用该列的估算中值替换它。但是,我发现 sklearn 中的内置输入器使用整个列的中值(或任何度量)。我的数据有标签,我想用仅属于该标签的其他样本中的该列的中值替换每个 NaN 值。
我可以通过将 df 拆分为每个标签的一个 df,对每个 df 进行插补,然后组合来做到这一点,但是这种逻辑不能很好地扩展。我最多可以上 20 节课,但我根本不相信这是“正确”的做法。
我想在不复制我的 df 的情况下执行此操作,方法是在拆分-应用-组合技术(或您认为可行的其他技术)中使用 groupby 对象。我感谢您的帮助。
示例 df:
在这里,我希望 (0, r2) 处的 NaN 值等于标签 0 的该列的中值,即值 89(来自 3, r2)。
我希望 (2,r3) 处的 NaN 值等于标签 1 的该列的中值,即中值 (24, 12) 或 18。
成功结果示例:
python - Python Pandas 在 DataFrame 中聚合系列数据
在数据框中,我正在尝试拆分应用组合到包含系列数据元素的列。(我已经搜索过,但没有找到与数据框中的系列有关的任何内容。)
数据框:
然后我分组和聚合,就像这样。
这给了我
但我想要的是
我可能遗漏了一些明显的东西,但解决方案让我无法理解。
python - Building complex subsets in Pandas DataFrame
I'm making my way around GroupBy
, but I still need some help. Let's say that I've a DataFrame with columns Group
, giving objects group number, some parameter R
and spherical coordinates RA
and Dec
. Here is a mock DataFrame:
I want to built a selection containing for each group the "brightest" object, i.e. the one with the smallest R
(or the greatest absolute value, since R
is negative) and the 3 closest objects of the group (so I keep 4 objects in each group - we can assume that there is no group smaller than 4 objects if needed).
We assume here that we have defined the following functions:
and that separation between two objects is given by r2d(calc_sep(RA1,Dec1,RA2,Dec2))
, with RA1
as RA
for the first object, and so on.
I can't figure out how to use GroupBy
to achieve this...