gpt4 book ai didi

mysql - 处理 5,000 个属性

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:20 25 4
gpt4 key购买 nike

我有一个包含 5,000 多个属性的数据集表格如下所示

id attr1 attr2, attr3
a 0 1 0
a 1 0 0
a 0 0 0
a 0 0 1

我希望在一行中表示每条记录,例如下表,以使其更适合通过聚类进行数据挖掘。

id, attr1, attr2, attr3
a 1 1 1

我已经尝试了很多方法来做到这一点我已经尝试将它导入 MYSQL 数据库并获取每个属性的最大值(每个 ID 只能为 1 或零)但是一个表不能容纳 5,000 多个属性。

我曾尝试在 excel 中使用数据透视函数并获取每个属性的最大值,但数据透视可以处理的列数远远少于我目前正在查看的 5,000。

我已经尝试将它导入 Tableua,但它也无法处理如此多的记录,这也让我感到痛苦

我只想在文本/CSV 文件或数据库表中获取表 2

任何人都可以提出任何建议,一个软件或我还没有考虑过的东西

最佳答案

这是一个 Python 脚本,可以完成您的要求

def merge_rows_by_id(path):
rows = dict()
with open(path) as in_file:
header = in_file.readline().rstrip()
for line in in_file:
fields = line.split()
id, attributes = fields[0], fields[1:]
if id not in rows:
rows[id] = attributes
else:
rows[id] = [max(x) for x in zip(rows[id], attributes)]

print (header)
for id in rows:
print ('{},{}'.format(id, ','.join(rows[id])))

merge_rows_by_id('my-data.txt')

虽然它非常高效,但它的编写目的是为了清晰度而不是最大效率。但是,这仍然会给您留下包含 5000 个属性的行,只是更少一些。

我在生物信息学中经常看到这种数据“结构”,研究人员只是说“把我们知道的关于“a”的一切都放在一行中,然后“一切”的集合加倍,再加倍,等。我不得不教他们关于 data normalization 的知识,让 RDBM 处理他们所拥有的。通常,attr_1…n 来自一次试验,attr_n+1…m 来自第二次试验,依此类推,可以对数据进行合理的规范化。

关于mysql - 处理 5,000 个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com