3

我有两个 CSV 文件,第一个像这样:

书一:

ID,TITLE,SUBJECT
0001,BLAH,OIL
0002,BLAH,HAMSTER
0003,BLAH,HAMSTER
0004,BLAH,PLANETS
0005,BLAH,JELLO
0006,BLAH,OIL
0007,BLAH,HAMSTER
0008,BLAH,JELLO
0009,BLAH,JELLO
0010,BLAH,HAMSTER
0011,BLAH,OIL
0012,BLAH,OIL
0013,BLAH,OIL
0014,BLAH,JELLO
0015,BLAH,JELLO
0016,BLAH,HAMSTER
0017,BLAH,PLANETS
0018,BLAH,PLANETS
0019,BLAH,HAMSTER
0020,BLAH,HAMSTER

然后是第二个 CSV,其中包含与第一个列表关联的项目,ID 是两者之间的共同属性。

书2:

ID,ITEM
0001,PURSE
0001,STEAM
0001,SEASHELL
0002,TRUMPET
0002,TRAMPOLINE
0003,PURSE
0003,DOLPHIN
0003,ENVELOPE
0004,SEASHELL
0004,SERPENT
0004,TRUMPET
0005,CAR
0005,NOODLE
0006,CANNONBALL
0006,NOODLE
0006,ORANGE
0006,SEASHELL
0007,CREAM
0007,CANNONBALL
0007,GUM
0008,SERPENT
0008,NOODLE
0008,CAR
0009,CANNONBALL
0009,SERPENT
0009,GRAPE
0010,SERPENT
0010,CAR
0010,TAPE
0011,CANNONBALL
0011,GRAPE
0012,ORANGE
0012,GUM
0012,SEASHELL
0013,NOODLE
0013,CAR
0014,STICK
0014,ORANGE
0015,GUN
0015,GRAPE
0015,STICK
0016,BASEBALL
0016,SEASHELL
0017,CANNONBALL
0017,ORANGE
0017,TRUMPET
0018,GUM
0018,STICK
0018,GRAPE
0018,CAR
0019,CANNONBALL
0019,TRUMPET
0019,ORANGE
0020,TRUMPET
0020,CHERRY
0020,ORANGE
0020,GUM

真正的数据集是数百万条记录,所以对于我的简单示例,我提前表示抱歉。

我需要解决的问题是以一种我可以看到哪些项目分组最常一起出现在同一个 ID 上的方式合​​并和整理数据。(例如 GRAPE、GUM、SEASHELL 一起出现 340 次,ORANGE 和 STICK 一起出现 89 次等...)

然后,我需要查看按 SUBJECT 分组时常见外观的一般结果是否有任何变化/偏差。

我熟悉的工具是 Excel 和 SQL,但我也可以使用 PowerBI 和 Alteryx。

完全披露:不是家庭作业,也不是工作,而是一个志愿者项目,因此我对这种数据操作不熟悉。

提前致谢。

4

4 回答 4

1

Alteryx 解决方案:

  1. 将两个 .csv 文件拖到画布上(在我的图片中显示为 book1.csv 和 book2.csv;Alteryx 将为您创建“输入”工具。
  2. 拖动“加入”工具并将两个 .csv 文件连接到其输入;选择“ID”作为连接字段;取消选择“Right_ID”作为输出,因为它只是“ID”的副本
  3. 拖动“摘要”工具并将连接工具的输出连接到摘要工具的输入;选择所有三个输出并添加为“分组依据”...然后添加带有“计数”的 ID 列
  4. 拖动浏览工具并将摘要的输出连接到浏览工具的输入。
  5. 运行工作流

毕竟,单击浏览工具,您应该会看到我的屏幕截图中看到的内容:(仅显示前十行输出):

在此处输入图像描述

于 2018-04-26T17:00:23.530 回答
0

使用 Alteryx 的小不同解决方案。

有了这个数据集,很少有重复的 3 或 4 个项目组。您可以进行两项相似性分析,得到 3 或 4 个项目组的概率,也可以单独计算 3 和 4 个项目组。我相信你想要的是后者,因为你得到葡萄和橙子的概率可能会随着你的购物车里是否有香蕉而改变。

无论如何,直到找到我所有的组合之后,我才加入这个主题。我通过对原始集合中的两个、三个、四个进行笛卡尔连接找到了所有组合。然后,我通过确保每行中的项目始终按字母顺序删除所有重复项。然后我计算了每种组合的出现次数。可以以相同的模式添加更多连接以计算 5、6、7 组...

一旦你有了发生的次数,我就会和受试者一起回来,对每组进行分析,并与总体结果进行比较。

使用 Alteryx 进行亲和力分析

  • 我应该透露我为 Alteryx 工作。
于 2018-04-26T19:10:30.503 回答
0

+1 参加志愿者项目 - 我认为任何了解数据的人都可以对支持他们最喜欢的团体或事业产生重大影响。

我只是将 2 个文件作为 2 个单独的表(获取数据/从文件)拉入 Power BI。根据 ID 在 2 个表之间创建关系(它可能会自动生成)。应该是一对多。

然后我会在 Book1 表中添加一个计算列来连接相关的 ITEM 值,例如。

Items =
CALCULATE (
    CONCATENATEX (
        DISTINCT ( 'Book2'[ITEM] ),
        'Book2'[ITEM],
        ", ",
        'Book2'[ITEM], ASC
    )
)

现在您可以在视觉对象(例如表格)中使用该项目字段以及ID 计数来获取频率。

将主题添加到表的副本(例如,添加到矩阵的列井中)将生成您的分组场景,或者您可以添加主题切片器。

由于您将比较不同大小的子集,我会将Count of ID更改为Show value as - % of grand total

于 2018-04-26T04:45:51.100 回答
0

首先,如果您使用的是 Windows,只需导航到包含 CSV 的目录并编写以下命令:

copy pattern newfileName.csv
#example 
copy *.csv merged.csv

现在您创建了一个 csv 文件,该文件太大了,现在您无法处理一次,这取决于您的编程语言,您可以使用适当的方式,对于 python,您可以使用生成器逐行处理,或者 pandas 您可以读取块大块的会很容易。

我希望这对你有帮助。

于 2019-08-01T15:43:36.967 回答