我有一个pandas数据框,其中包含一个包含字符串的列,如下所示:
"Hex:6; HexNAc:3; NeuNAc:1}"
"Fuc:1; Hex:7; HexNAc:2}"
我编写了以下函数,将此文本转换为具有键值对的字典,如下所示:
def create_monosacch_columns(glycan_ident):
glycans = glycan_ident.split("}")[0].split("; ")
monosaccharides = []
for entry in glycans:
key, val = entry.split(":")
monosacc = {key:val}
monosaccharides.append(monosacc)
return monosaccharides
输出:
[{'Hex': '6'}, {'HexNAc': '3'}, {'NeuNAc': '1'}]
[{'Fuc': '1'}, {'Hex': '7'}, {'HexNAc': '2'}]
如何将这些dicts列表转换为pandas dataframe列,并将值映射到原始行?
答案 0 :(得分:0)
不完全确定您希望最终输出显示的内容,但如果您不介意使用NA,则可以尝试将字典列表作为数据框附加到原始数据框。会有NAns,但在进行分析时可以将其删除。
df = pd.DataFrame([[1, 2], [3, 4]], columns=list('HexNAc',"NeuNAc"))
数据框如下所示:
HexNAc NeuNAc
1 2
3 4
如果查看字典的示例列表,
temp= [{'Hex': '6'}, {'HexNAc': '3'}]
然后,您可以将此列表转换为自己的数据框,并将其附加到您已有的数据框中。
df2 = pd.DataFrame(temp)
df = df.append(df2)
最终列表如下所示:
HexNAc NeuNAc
1 2
3 4
3 NaN
NaN 1