折叠 Pandas 中的行

Collapsing rows in Pandas

这是我的数据框

                                               A         B       C  D 
0                                    TG-bck-full       3648   10064  0
1    pNLRep2-Caprh74kan.SGR.(S.30MAY19.N.4Dec19)      10726    4083  0
2           pHELP-KanV4.SGR.(S.04MAY19.N.4Dec19)      13269    1795  0
3                                              1  248956422     248  0
4                                             10  133797422     120  0
..                                           ...        ...     ... ..
196                                   KI270394.1        970       0  0
197                            AY601635.1:1-4344       4344       2  0
198                                   CP011113.2    4587291       9  0
199                                     cassette       4981  164534  0
200                                            *          0       0  0

我需要构建一个代码,以便将第 3-196 行折叠成一行,并且 B 和 C 的总和应该在这一行中。所以,最后,它应该看起来像

                                               A         B          C  D 
0                                    TG-bck-full       3648        10064  0
1    pNLRep2-Caprh74kan.SGR.(S.30MAY19.N.4Dec19)      10726        4083  0
2           pHELP-KanV4.SGR.(S.04MAY19.N.4Dec19)      13269        1795  0
3           (Not sure what would come here)            3099755062   25021
4                              AY601635.1:1-4344       4344        2  0
5                                     CP011113.2    4587291        9  0
6                                       cassette       4981        164534  0
7                                              *          0        0  0

请注意,行的总和应该只是第 3-196 行之间的值

使用concat with select rows by DataFrame.loc:

df = pd.concat([df.loc[:2], df.loc[3:196].sum().to_frame().T.assign(A='All'), df.loc[187:]])