大家好,我需要帮助,以便在有特定grep值时融合列containt
这里有一个例子
Species COL1 COL2 COL3 COL4 COL5
SPf_1 4 f_G1 None None None
SP1 9 -_Haploviric -_unclassified f_G3 None
SP1 36 k_Orthorn f_G7 None None
SP2 90 k_Orthorn f_G3 p_Pisuvi None
SP3 32 None None None f_83
SP3 2 -_Ribovi Cattus None None
SP4 89 None None None None
然后我想添加一个名为F_COL的新列,在这里我为每一行添加一个f_ pattern
单元格内容。注意(我只需要检查COL1-5
列,但不检查Species
列,这些列也可以有f_u模式)
我应该得到:
Species COL1 COL2 COL3 COL4 COL5 F_COL
SPf_1 4 f_G1 None None None f_G1
SP1 9 -_Haploviric -_unclassified f_G3 None f_G3
SP1 36 k_Orthorn f_G7 None None f_G7
SP2 90 k_Orthorn f_G3 p_Pisuvi None f_G3
SP3 32 None None None f_83 f_83
SP3 2 -_Ribovi Cattus None None NA
SP4 89 None None None None NA
有人有主意吗
以下是词汇格式的数据:
{'Species': {0: 'SPf_1', 1: 'SP1', 2: 'SP1', 3: 'SP2', 4: 'SP3', 5: 'SP3', 6: 'SP4'}, 'COL1': {0: 4, 1: 9, 2: 36, 3: 90, 4: 32, 5: 2, 6: 89}, 'COL2': {0: 'f_G1', 1: '-_Haploviric-', 2: 'k_Orthorn', 3: 'k_Orthorn', 4: 'None', 5: '-_Ribovi', 6: 'None'}, 'COL3': {0: 'None', 1: '_unclassified', 2: 'f_G7', 3: 'f_G3', 4: 'None', 5: 'Cattus', 6: 'None'}, 'COL4': {0: 'None', 1: 'f_G3', 2: 'None', 3: 'p_Pisuvi', 4: 'None', 5: 'None', 6: 'None'}, 'COL5': {0: 'None', 1: 'None', 2: 'None', 3: 'None', 4: 'f_83', 5: 'None', 6: 'None'}}
这将创建一个函数,该函数给定一行,运行其所有值并返回其匹配的第一个f_模式,否则为“NA”
然后我们用
axis=1
运行.apply
,告诉pandas在所有行上应用这个函数,并将结果分配给F_COL
让我们}
filter
和stack
从COL1
到COL5
的列,然后extract
在level=0
上的f_pattern
字符串后跟groupby
+{相关问题 更多 >
编程相关推荐