我正在尝试将两列中的值相加,条件是一列值<10。我在下面给出了输入数据集和所需输出的示例。
我尝试使用group by和shift进行锻炼。但是,我可以移动一两个连续的行。行已根据该值合并。
我将数据分为两个级别,并创建了四个输出列,其中一列合并了单元格,其他列则增加了值。
输入数据集(df)
Index,S,T,M,N,Value
1,S1,T1,M1,A,35
2,S1,T1,M1,B,12
3,S1,T1,M1,C,9
4,S1,T2,M2,A,15
5,S1,T2,M2,B,15
6,S1,T2,M2,C,30
7,S1,T3,M3,A,4
8,S1,T3,M3,B,5
9,S1,T3,M3,C,12
10,S1,T4,M4,A,10
11,S1,T4,M4,B,9
12,S1,T4,M4,C,12
13,S1,T4,M1,A,12
14,S1,T4,M1,B,9
15,S1,T4,M1,C,8
在上面的示例数据集中,在级别1中,我合并了2,3 / 7,8 / 10,11 / 14,15。它们必须具有相同的S,T和M值。在第二级中,我执行了相同级别的合并,并导致了第二级合并。 (将9,8合并为7)。
输出数据集-
Index,S,T,M,N,Value,Level1,Value 1,Level2,Value 2
1,S1,T1,M1,A,35,A,35,A,35
2,S1,T1,M1,B,12,B+C,21,B+C,21
3,S1,T1,M1,C,9,B+C,0,B+C,0
4,S1,T2,M2,A,15,A,15,A,15
5,S1,T2,M2,B,15,B,15,B,15
6,S1,T2,M2,C,30,C,30,C,30
7,S1,T3,M3,A,4,A+B,9,A+B+C,21
8,S1,T3,M3,B,5,A+B,0,A+B+C,0
9,S1,T3,M3,C,12,C,12,A+B+C,0
10,S1,T4,M4,A,10,A+B,19,A+B,19
11,S1,T4,M4,B,9,A+B,0,A+B,0
12,S1,T4,M4,C,12,C,12,C,12
13,S1,T4,M1,A,12,A,12,A,12
14,S1,T4,M1,B,9,C+B,17,C+B,17
15,S1,T4,M1,C,8,C+B,0,C+B,0