我正在尝试将几列数据添加到现有数据框中。数据框本身是由许多其他数据框构建的,我成功地加入了相同的索引。为此,我使用了这样的代码:
data = p_data.join(r_data)
我实际上是在一个多索引上加入了这些,所以数据框如下所示,其中 Name1 和 Name 2 是索引:
Name1 Name2 present r behavior
a 1 1 0 0
2 1 .5 2
4 3 .125 1
b 2 1 0 0
4 5 .25 4
8 1 0 1
所以 Name1 索引不会重复数据,但 Name2 索引会(我使用它来跟踪 dyads,因此 Name1 和 Name2 一起只表示一次)。我现在要添加的是与 Name2 数据相对应的 4 列数据(关于 dyad 的第二个成员的信息)。与“当前”“r”和“行为”数据不同,这些数据是针对个人的,而不是针对每个人的。所以合并时不需要考虑 Name1 数据。
问题是,虽然重复 Name2 数据以耗尽二元组合,但我现在要添加的数据中的“Name2”列对于每个 Name2 个体只有一条数据:
Name2 Data1 Data2 Data3
1 80 6 1
2 61 8 3
4 45 7 2
8 30 3 6
我希望输出看起来像什么:
Name1 Name2 present r behavior Data1 Data2 Data3
a 1 1 0 0 80 6 1
2 1 .5 2 61 8 3
4 3 .125 1 45 7 2
b 2 1 0 0 61 8 3
4 5 .25 4 45 7 2
8 1 0 1 30 3 6
尽管阅读了文档,但我不清楚是否可以使用 join() 或 merge() 来获得所需的结果。如果我尝试像以前使用的简单数据框那样连接现有数据框,我最终会得到新列,但它们充满了 NaN 值。我还尝试了使用 Name1 和 Name2 作为列或索引的各种组合,使用连接或合并(不像听起来那么随机,但我显然没有正确解释文档!)。非常感谢您的帮助,因为我现在非常迷茫。