我正在尝试合并两个表,以便将具有相同ID(该ID可能是多个列的组合)的行加总在一起。仍然保留与任一表都不匹配的行。
下面是我所想的一个例子。C1
和C2
是ID列,而W1
和W2
是要求和的行。
DF A:
| C1级|C2级|第一周|第二周|
| - -|- -|- -|- -|
| A级|A级|五个|三个|
| A级|B|六个|七个|
| B| A级|2个|三个|
| B| B|八个|八个|
DFA
数据块B:
| C1级|C2级|第一周|第二周|
| - -|- -|- -|- -|
| A级|A级|2个|七个|
| A级|C语言|四个|八个|
| B| A级|九个|一个|
| B| D级|三个|五个|
DFB
结果 Dataframe
| C1级|C2级|第一周|第二周|
| - -|- -|- -|- -|
| A级|A级|七个|10个|
| A级|B|六个|七个|
| A级|C语言|四个|八个|
| B| A级|十一|四个|
| B| B|八个|八个|
| B| D级|三个|五个|
Resulting DF
我有两个想法,但目前还不能实现。第一个是在两个 Dataframe 上做一个联合,然后做一个groupby聚合,但我不确定这是否是最有效的方法。
另一个是在两个 Dataframe 上进行外部连接,然后对公共列求和。我在实现这一点时遇到了麻烦,因为ID列来自一个列表,并且是不时变化的变量,因此连接不能硬编码。
2条答案
按热度按时间ldioqlga1#
full_join
将更容易实现,即使您列列表会随时间而变化。下面是一个使用您的示例的示例
t40tm48m2#
将两个 Dataframe 连接为“full”,并对非空的列求和: