我有一个包含多个列的文件,如下所示:
Ko_class FPKM count
0 Carbon;Pyruvate;vitamins 16.7 1
1 Pyruvate;Carbohydrate;Pentose and glucuronate 30.0 7
2 Lipid;Carbon;Galactose 40.5 9
3 Galactose;Pyruvate;Fatty acid 57.0 10
4 Fatty acid;Lipid 22.0 4
我想根据target_list
对alls[FPKM]
和alls[count]
的行值求和,同时所有的值只能求和一次。
这是我的数据
# coding=utf-8
import pandas as pd
import numpy as np
classes = [('Carbon;Pyruvate;vitamins', 16.7, 1),
('Pyruvate;Carbohydrate;Pentose and glucuronate', 30, 7),
('Lipid;Carbon;Galactose', 40.5, 9),
('Galactose;Pyruvate;Fatty acid', 57, 10),
('Fatty acid;Lipid', 22, 4)]
labels = ['Ko_class','FPKM', 'count']
alls = pd.DataFrame.from_records(classes, columns=labels)
print(alls)
target_list = ['Carbon','Carbon; Pyruvate','Galactose; Pyruvate; Carbon',
'Galactose;Pyruvate;Fatty acid; Carbon']
这是我想要的
Ko_class FPKM count
0 Carbon 57.2 10
1 Carbon; Pyruvate 144.2 27
2 Galactose; Pyruvate; Carbon 144.2 27
3 Galactose;Pyruvate;Fatty acid; Carbon 166.2 31
如您所见,尽管Carbon; Pyruvate
和Galactose; Pyruvate; Carbon
行不相同,但FPKM
和count
值可能相同。
希望有人能帮助我:(
2条答案
按热度按时间mwyxok5s1#
输入
创建掩码以过滤ko_class中的所有类,并与目标列表中的所有类进行比较
然后将其转置并重命名列。
产出
sqxo8psd2#
在循环中使用
concat
的集合运算:输出: