根据python中各行的不同条件,将两行值添加到一个新列中

时间:2019-06-28 06:45:42

标签: python pandas merge pandas-groupby

我正在尝试将两列中的值相加,条件是一列值<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

0 个答案:

没有答案