我有一个pandas数据框,格式如下(format_A):
record_id, f_1 , f_2, f_3, ... , f_n, A, B, C
1, 0.1, 0.2, 0.3, ... , 1.2, 1, 0, 1
2, 0.3, 1.2, 0.5, ... , 2.1, 1, 0, 0
3, 0.2, 3.2, 1.3, ... , 0.4, 1, 1, 0
4, 1.1, 0.1, 0.7, ... , 0.5, 0, 0, 1
5, 2.1, 0.5, 0.8, ... , 1.9, 0, 1, 1
6, 0.5, 0.4, 0.2, ... , 0.8, 1, 1, 1
:
:
我希望将其转换为以下格式(格式B)。 基本上,如果一个record_id有多个输出,我们将复制该记录。 而权重基本上是
1 /(duplication后的总记录数)
。record_id, f_1 , f_2, f_3, ... , f_n, target weight
1, 0.1, 0.2, 0.3, ... , 1.2, A 0.5
1, 0.1, 0.2, 0.3, ... , 1.2, C 0.5
2, 0.3, 1.2, 0.5, ... , 2.1, A 1.0
3, 0.2, 3.2, 1.3, ... , 0.4, A 0.5
3, 0.2, 3.2, 1.3, ... , 0.4, B 0.5
4, 1.1, 0.1, 0.7, ... , 0.5, C 1.0
5, 2.1, 0.5, 0.8, ... , 1.9, B 0.5
5, 2.1, 0.5, 0.8, ... , 1.9, C 0.5
6, 0.5, 0.4, 0.2, ... , 0.8, A 0.333
6, 0.5, 0.4, 0.2, ... , 0.8, B 0.333
6, 0.5, 0.4, 0.2, ... , 0.8, C 0.333
:
:
现在,我循环遍历原始数据框以检查每个记录,然后逐行将所需记录添加到新的数据框中。虽然这种方法有效,但我想知道是否有更优雅的方法?谢谢!