问题标签 [data-munging]

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.

0 投票
1 回答
597 浏览

r - sqldf和R代码库的可维护性

如果一个人在 R 中构建一个实质性的、组织范围的代码库,依赖 sqldf 包作为数据处理任务的默认方法是否可以接受?还是在可能的情况下依赖具有 R 特定语法的操作的最佳实践?通过依赖 sqldf,我们在他们的 R 代码库中引入了大量不同的语法 SQL。

我问这个问题是关于可维护性和风格的。我搜索了现有的 R 风格指南,但没有找到关于这个主题的任何内容。

编辑:为了澄清我关心的工作流程,考虑一个充分利用 sqldf 的数据处理脚本,如下所示:

这样的脚本可以持续多行。(对于那些熟悉 Hadoop 和 PIG 的人来说,风格实际上类似于 PIG 脚本)。大部分工作都是使用 SQL 语法完成的,尽管这样做有利于避免复杂的子查询。

0 投票
1 回答
141 浏览

r - R中的数据处理:不均匀长度的子集和排列向量

很抱歉,我无法给出更具体的标题。我正试图让自己摆脱电子表格来完成更困难的任务,而这给我带来了特别的麻烦——我可以在 Excel 中完成,但我真的不知道如何从 R 开始。这有点难以描述。我想这里可能会涉及多种技术,所以我希望这对其他人有用。

我有来自电子表格的以下形式的数据:

资料

此数据与以下键相关联:

关键

这是一般方法:

数据中显示的每一行都来自电子表格的一个单元格,因此如果直接导入,它将被 R 解释为一个字符串。将每一行的字符串拆分为可以在 R 中存储为向量的形式。

根据与其关联的行中的值,将数据过滤为三个类别(A、B 或 C)。例如,对于第 5 行数据,我们有以下值:QPOE, PEOL, WJRN, VCNS, PEKF, PFPW。查看key,我们可以根据 A、B 或 C 中包含的内容将其分为三个子类别。这取决于该行中是否存在 NA:

A QPOE PEOL WJRN VCNS PEKF B QPOE PEOL WJRN VCNS PFPW C PEOL WJRN VCNS PEKF

现在我们已将数据的第 5 行划分为各自的类别,我们可以为该行创建一个单独的表,其中包含相关值:

A 0.815885005 0.626916187 0.403002388 0.394817612 0.645309773 B 0.083834541 0.093812247 0.705142265 0.250760686 0.018869604 C 0.152577881 0.768961818 0.419539549 0.116601451

所以我们有一种哈希表......有点。现在我想将这些值存储在一个表中。它在最终形式中基本上看起来像这样(仅显示第 5 行数据):

实际上,我在数据中有 400 行“猫”,而不仅仅是 5 行。

这是存储数据以方便参考的最佳方式吗?嵌套列表会像这样更受欢迎吗?

  1. 猫排 1
    • 一个项目
      • 价值观
    • B 项目
      • 价值观
    • C项目
      • 价值观
  2. 猫排 2...

我只是犹豫要不要为这些数据制作数据框,因为当我的原始数据分为 A、B 和 C 时,行的长度变化很大。最短的必须有 NA 才能填充到最长的长度以适合数据帧。这件事让我感到不舒服。

我总是可以查找答案中使用的函数并弄清楚,所以除非你觉得特别慷慨,否则不需要深入解释!感谢您的时间。

0 投票
2 回答
13106 浏览

pandas - 如何将我的熊猫数据框移动到 d3?

我是 Python 新手,并且已经阅读了几本关于它的书籍。一切都很棒,除了可视化。我真的不喜欢 matplotlib 和 Bokeh 需要太重的堆栈。

我想要的工作流程是:

在 ipython notebook 中使用 pandas 进行数据处理分析 -> 在 sublimetext2 中使用 d3 进行可视化

但是,作为 Python 和 d3 的新手,我不知道将我的 pandas 数据框导出到 d3 的最佳方法。我应该把它作为一个csv吗?JSON?还是有更直接的方法?

附带问题:是否有任何(合理的)方法可以在 ipython 笔记本中完成所有操作,而不是切换到 sublimetext?

任何帮助,将不胜感激。

0 投票
1 回答
1859 浏览

python - 合并 pandas 中的 describe 方法输出

我正在使用 pandas 进行数据处理,但我似乎无法弄清楚什么是基本合并。本质上,我在数据集上有多种描述方法。describe 方法的输出如下所示。我在这个例子中使用了简单的数字。列的名称相同(Metric4)。

我想将这些合并在一起是为了获得如下所示的输出:

我想我想将列名更改为以区分两者,但我目前遇到的主要问题是合并。任何帮助将不胜感激。

0 投票
2 回答
1030 浏览

r - 从 saveRDS() 语句中自动写入 readRDS() 语句

我经常saveRDS()在处理大量数据后编写语句,这促使我立即编写readRDS()以备将来访问 .RDS 文件以更快地加载到 .RDS 文件的可重现编码R。下面概述了我readRDS()从输入语句生成语句的手动过程。saveRDS()如何改进?EMACS如何在和/或中为我编写宏/函数来执行此操作R

0 投票
0 回答
66 浏览

websocket - 在 Ember Data 中哪里可以处理 websocket 数据

我正在为我的 Ember 应用程序编写 Web 套接字服务。该服务将订阅一个 URL,并接收数据。数据会将模型推送到 Ember Data 的store.

URL 方案不代表标准的 RESTful 路由;它不是/posts/users例如,它类似于/inbound。一旦我订阅,它将成为各种事件的导火索。

对于我订阅的每个路由,我都需要实现特定于该路由的数据处理,以将数据转换为 Ember Data 期望的格式。我的问题是,最好的地方在哪里?

我将收到的示例事件对象:

我想将数据标准化,就像这样

然后将其交给知道如何将设备模型和摄取模型添加到商店的东西。我只是对 ember 数据中的所有抽象感到困惑。

问题:

  1. 为了将记录添加到存储中,我应该将最终的标准化 JSON 传递给哪种方法?store.push?
  2. 初始数据处理(即从数组中获取事件数据)的合适位置在哪里?应用程序序列化器的extractSingle? pushPayload? 在不同的路线上,大部分的加工都是非标准的。
  3. 完成初始处理后,是否应该对数据中的每个键使用每种类型的序列化程序?即我是否应该将初始“blob”应用程序序列化程序,然后将每个键委托给每个模型的序列化程序?

参考:

0 投票
3 回答
143680 浏览

python - Pandas 合并具有不同列的两个数据框

我肯定在这里遗漏了一些简单的东西。尝试在 pandas 中合并两个数据框,它们的列名大多相同,但右侧的数据框有一些左侧没有的列,反之亦然。

我尝试使用外部连接加入:

但这会产生:

我还指定了要加入的单个列(on = "id"例如),但这会复制除idlikeattr_1_x之外的所有列attr_1_y,这并不理想。我还将列的整个列表(有很多)传递给on

产生:

我错过了什么?我想获得一个附加了所有行的 df ,并且attr_1, attr_2attr_3在可能的情况下填充,在它们不显示的地方填充 NaN 。这似乎是一个非常典型的数据处理工作流程,但我被困住了。

提前致谢。

0 投票
2 回答
98 浏览

r - 避免合并和临时 data.tables:改进我对 data.table 代码的草率使用

我正在将一项纵向研究的回答制成表格,在该研究中,参与者被要求自愿回答 4 项调查。每个参与者都有一个唯一的 PartID。每个参与者都被分配了一个 SectionID(字母)。已尝试并已完成的调查由 StatusID="Complete" 指示。已尝试但未完成的调查由 StatusID="Incomplete" 指示。未尝试调查的参与者将没有记录,但在结果列表中将该调查计为“0”。

输入数据示例:

以下代码有效,但非常草率。我假设有一种更简洁、更优雅的方式来使用 data.table 来完成这种数据处理?特别是,我想避免临时变量,以及合并两个 data.tables 的需要。

上面代码实现的输出是正确的,并且是(注意:c1 表示已完成调查#1,i1 表示调查#1 不完整。另请注意,参与者每次调查可以提交多个回复):

0 投票
0 回答
61 浏览

r - 在列表的每个组件上并行执行数据修改步骤

我有一个包含两个 data.table 对象的列表。给出一个想法,一个表有 400,000 行和 7 个变量,另一个有 750,000 行和 12 个变量。这两个表没有相同的列。我对它们做了很多修改(每个步骤都有不同的步骤)。修改步骤包括计算总和、查找汇总值的百分位数、每组中的案例数、唯一长度等(每个步骤超过 20 步)。我用data.table这些步骤的包。但是,我发现每个步骤都执行大约 20 个步骤(总共 > 40 个步骤)需要一些时间。我想知道如何使用并行处理来加快速度。我认为可以并行处理这些步骤,因为它们是在列表的不同组件上执行的。我进行了彻底的谷歌搜索以集思广益,但是,我没有找到有用的线索。有人做过吗?请提供一些启示,所以我将非常感激。谢谢

到目前为止,我已经做了这么多。Result是包含两个 data.table 对象的列表。fun1 和 fun2 包含了我需要对每个 data.table 对象执行的一组步骤。性能方面我还没有看到任何收益(可能是由于开销?我不知道)。

0 投票
2 回答
316 浏览

python - 使用 Pandas 将 2 个具有共同元素的 dicts 列表合并

所以我有2个字典列表..

目标是获得如下所示的最终数据集:

由于我的数据集适用于特定年份所有 12 个月的大量学生,因此我使用 Pandas 进行数据处理。这就是我的做法:

首先使用name键将两个列表组合成一个数据框。

然后创建一个趋势列作为字典

并且,使用to_dict(orient='records')选定列的方法将其转换回字典列表:

很明显,最终的数据集并不是我想要的。而不是包含两个月份的 2 个字典,而是得到 4 个将所有月份分开的字典。我该如何解决这个问题?我宁愿在 Pandas 本身中修复它,而不是使用这个最终输出再次将其减少到所需状态