我正在尝试使用 pandas 对平面数据源进行数据分析。具体来说,我试图完成的是相当于 SQL 中的 Union All 查询。
我正在使用 read_csv() 方法输入数据,输出具有唯一的整数索引和大约 30 多列。
在这些列中,有几个列包含识别信息,而其他列包含数据。
总共,前 6 列包含唯一标识条目的标识信息。在这 6 列之后,有一系列列(A、B...等)引用了该值。其中一些列以集合的形式链接在一起,例如 (A,B,C) 和 (D,E,F) 一样。
但是,(D,E,F) 也与 (A,B,C) 相关,如下所示 ((A,D),(B,E),(C,F))。我正在尝试做的是获取我的数据集,该数据集如下:
(id1,id2,id3,id4,id5,id6,A,B,C,D,E,F)
并返回以下
((id1,id2,id3,id4,id5,id6,A,B,C),
(id1,id2,id3,id4,id5,id6,D,E,F))
在这里,由于 A 和 D 是链接的,它们包含在同一列中。
(注意,这是一个简化,整个数据集中大约有 1200 万个唯一组合)
我一直在尝试使用合并、连接和连接功能,但无济于事。我觉得我错过了一些重要的东西,因为在 SQL 数据库中我可以简单地执行一个联合所有查询(诚然这很慢)来解决这个问题。
在这个阶段我没有工作示例代码。
基于一些 pandas 文档编写此问题的另一种方法。
left = key lval
right = key rval
merge(left, right, on=key) = key, lval, rval
相反,我想要:
left = kev, lval
right = key, lval
union(left, right) = key, lval
key, rval
我不确定是否需要为此创建新的索引键值。