Грубый способ с использованием apply
In [15]: mapper = df.dropna().set_index('id')['value'].to_dict()
In [16]: df.id.apply(lambda x: sum(map(mapper.get, x.split(';'))))
Out[16]:
0 50.0
1 20.0
2 10.0
3 70.0
4 30.0
5 80.0
Name: id, dtype: float64
Ну, у вас, POJO, очевидно, должен быть каждый возможный атрибут, который у вас есть в вашей схеме, а затем просто должны быть другие значения, не заданные как нулевые ...
Итак,
public class MyObject {
private String title;
private List<OtherObject> fasilitas;
...
}