【发布时间】:2020-04-11 01:49:37
【问题描述】:
我有一个多索引数据框和一个字典。该字典的某些键和第一个子列的某些值重合。我想根据 query_name 值添加一个包含我的字典值的新列。
这是我的数据框
S_genus
query_name
GCA_000237975.1 g__Sulfobacillus_A 118.0
GCA_000307585.2 g__Thermoanaerobacterium 118.0
g__Thermoanaerobacter 1.0
g__Ruminiclostridium_F 1.0
GCA_000404785.1 g__Cloacimonetes-1 1.0
... ...
GCF_900141705.1 g__Fibrobacter 116.0
GCF_900142435.1 g__Thermocrinis_A 113.0
GCF_900175965.1 g__Rubrobacter 116.0
GCF_900176285.1 g__Desulfacinum 118.0
GCF_900215515.1 g__Persephonella 118.0
这里是我的字典
acc2genus
'GCF_001658645.1': 'g__Staphylococcus',
'GCF_900117665.1': 'g__Acinetobacter',
'GCF_000652055.1': 'g__Mycobacterium',
'GCF_003037025.1': 'g__Klebsiella',
'GCF_002138225.1': 'g__Acinetobacter',
'GCF_001186785.1': 'g__Vibrio',
'GCF_001671475.1': 'g__Mesorhizobium',
'GCF_000153745.1': 'g__Amylibacter_A',
'GCF_002814015.1': 'g__Klebsiella',
我尝试过这样的事情:
rdf["S_genus", "nueva"] = rdf["S_genus"].apply(lambda x: acc2genus[x])
我尝试了很多次,但出现错误或丢失了第三个子列(数字)。
谁能帮帮我?
【问题讨论】:
-
How to create a Minimal, Reproducible Example。否则,每个试图帮助您的人都是在浪费时间。