我有这些名为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 |
+-----+------------+---------+-----+
答案 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()