【发布时间】:2017-01-01 14:01:26
【问题描述】:
我在 python 中有一个 8 列的二维矩阵。
这 8 列包含两个不同实体的记录,例如 A 和 B,每个实体有 4 列。我的示例数据如下所示:
╔══════╦═════════╦══════╦═════════╗
║ A_ID ║ arrtibA ║ B_ID ║ attribB ║
╠══════╬═════════╬══════╬═════════╣
║ 1 ║ val ║ 1 ║ val ║
║ 1 ║ val ║ 1 ║ val ║
║ 1 ║ val ║ 2 ║ val ║
║ 1 ║ val ║ 2 ║ val ║
║ 2 ║ val ║ 3 ║ val ║
║ 2 ║ val ║ 3 ║ val ║
║ 2 ║ val ║ 4 ║ val ║
║ 3 ║ val ║ 5 ║ val ║
║ 3 ║ val ║ 5 ║ val ║
╚══════╩═════════╩══════╩═════════╝
我希望将其转换为这种形式:
╔══════╦═════════╦══════╦═════════╗
║ A_ID ║ arrtibA ║ B_ID ║ attribB ║
╠══════╬═════════╬══════╬═════════╣
║ 1 ║ val ║ 1 ║ val ║
║ 1 ║ val ║ 1 ║ val ║
║ 2 ║ val ║ 2 ║ val ║
║ 2 ║ val ║ 2 ║ val ║
║ 3 ║ val ║ 3 ║ val ║
╚══════╩═════════╩══════╩═════════╝
简单来说,就是根据实体 A 和实体 B 各自的 ID 来对齐它们的属性。没有找到匹配的行可以被丢弃。我有大约 28,000 多行,其中 A_ID 的范围从 17 到 230,B_ID 的范围从 17 到 305。但是一旦完成对齐,两个实体的 ID 低于 231 的行将在彼此前面对齐,然后休息从实体 B 的 231 到 305 被丢弃。
【问题讨论】:
-
你在混用术语。
pandas有数据框。 Numpy 只有数组。我建议一个 MCV 示例