折叠 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:]])
这是我的数据框
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:]])