【发布时间】:2022-01-23 17:09:09
【问题描述】:
我有两个数据框,例如
Tab1:
ORFs_values Groups SP1 SP2 SP3
SP_ORF1 Group1 1 1 0
SP_ORF1 Group2 0 0 0
SP_ORF1 Group3 0 1 0
SP_ORF1 Group4 1 1 1
SP_ORF1 Group5 1 1 1
还有一个:
Tab2
Groups SP_names SP_names2
Group1 SP1 SP1_A
Group1 SP2 SP2_A
Group3 SP2 SP2_BL
Group4 SP1 SP1_BI
Group4 SP2 SP2_OP
Group4 SP3 SP3_I
Group5 SP3 SP3_0
Group5 SP3 SP3_P
Group5 SP3 SP3_K
我想将 Tab1 中的所有单元格替换为 1,并为每个匹配的 Groups 和 SP_names 替换为对应的 SP_names2。
例如,在Tab1的第一行,Group1中SP1的SP_names2值为SP1_A,所以我将1替换为SP1_A等等。 ..
然后我应该得到以下输出:
New_tab1:
ORFs_values Groups SP1 SP2 SP3
SP_ORF1 Group1 SP1_A SP2_A 0
SP_ORF1 Group2 0 0 0
SP_ORF1 Group3 0 SP2_BL 0
SP_ORF1 Group4 SP1_BI SP2_OP SP3_I
SP_ORF1 Group5 0 0 SP3_0|SP3_P|SP3_K
如果有帮助,这里有两个 dict 格式的 df:
Tab1
{'ORFs_values': {0: 'SP_ORF1', 1: 'SP_ORF1', 2: 'SP_ORF1', 3: 'SP_ORF1'}, 'Groups': {0: 'Group1', 1: 'Group2', 2: 'Group3', 3: 'Group4'}, 'SP1': {0: 1, 1: 0, 2: 0, 3: 1}, 'SP2': {0: 1, 1: 0, 2: 1, 3: 1}, 'SP3': {0: 0, 1: 0, 2: 0, 3: 1}}
Tab2
{'Groups': {0: 'Group1', 1: 'Group1', 2: 'Group3', 3: 'Group4', 4: 'Group4', 5: 'Group4', 6: 'Group5', 7: 'Group5', 8: 'Group5'}, 'SP_names': {0: 'SP1', 1: 'SP2', 2: 'SP2', 3: 'SP1', 4: 'SP2', 5: 'SP3', 6: 'SP3', 7: 'SP3', 8: 'SP3'}, 'SP_names2': {0: 'SP1_A', 1: 'SP2_A', 2: 'SP2_BL', 3: 'SP1_BI', 4: 'SP2_OP', 5: 'SP3_I', 6: 'SP3_0 ', 7: 'SP3_P', 8: 'SP3_K '}}
**#Edit,如果我有 Group5 示例中的重复项,是否可以添加所有重复项 SP_names2 并用管道分隔?
【问题讨论】:
标签: python python-3.x pandas