根据数据帧的id来汇总两个数据帧的列

时间:2017-06-08 17:23:12

标签: python pandas

我有这些名为test和rul的数据帧。 rul数据帧包含RUL列中的常量,需要根据数据集和单元ID将其添加到测试的RUL中。我不知道如何实现这一点,如果有人能引导我朝着正确的方向前进,我会很高兴。

感谢。

Test: +-------+------------+---------+-----+ | | dataset_id | unit_id | RUL | +-------+------------+---------+-----+ | 0 | FD001 | 1 | 30 | | 1 | FD001 | 1 | 29 | | 2 | FD001 | 1 | 28 | | 3 | FD001 | 1 | 27 | | 4 | FD001 | 1 | 26 | | ... | ... | ... | ... | | 41209 | FD004 | 248 | 4 | | 41210 | FD004 | 248 | 3 | | 41211 | FD004 | 248 | 2 | | 41212 | FD004 | 248 | 1 | | 41213 | FD004 | 248 | 0 | +-------+------------+---------+-----+

rul +-----+------------+---------+-----+ | | dataset_id | unit_id | RUL | +-----+------------+---------+-----+ | 3 | FD004 | 4 | 75 | | 63 | FD003 | 64 | 28 | | 70 | FD002 | 71 | 148 | | 203 | FD002 | 204 | 121 | | 225 | FD004 | 226 | 88 | | ... | ... | ... | ... | | 45 | FD004 | 46 | 134 | | 60 | FD002 | 61 | 169 | | 140 | FD004 | 141 | 130 | | 94 | FD001 | 95 | 128 | | 161 | FD002 | 162 | 41 | +-----+------------+---------+-----+

1 个答案:

答案 0 :(得分:1)

你可以做一个明确的合并:

m = test.merge(rul, on=['dataset_id', 'unit_id'], how='left')
test['rul'] = m['rul_x'] + m['rul_y']

或做一个groupby语句:

pd.concat([test, rul]).groupby(['dataset_id', 'unit_id'], as_index=False)['rul'].sum()