繁体   English   中英

熊猫数据框到具有多个键的字典

[英]Pandas Dataframe to Dictionary with Multiple Keys

我目前正在使用由13个字母字符串(“ 13mer”)和ID码(“ Accession”)配对组成的数据框,如下所示:

原始数据框

但是,我想创建一个词典,其中的登录号是键,其值是与该登录关联的13mers,因此其外观如下:

{'JO2176': ['IGY....', 'QLG...', 'ESS...', ...],
 'CYO21709': ['IGY...', 'TVL...',.............],
 ...}

我已经使用以下代码完成了:

Accession_13mers = {}
for group in grouped:
    Accession_13mers[group[0]] = []
    for item in group[1].iteritems():
        Accession_13mers[group[0]].append(item[1])

但是,现在,我想回顾并遍历每个登录代码的键,并运行一个我定义为find_match_position(reference_sequence,13mer)的函数,该函数按参考顺序查找13mer并返回其位置。 然后,我想将该位置附加为13mer的值,这将是关键。

如果有人对我如何加快此过程有任何想法,那将非常有帮助。

谢谢,

贾斯汀

您可以通过拆包更干净地遍历整个组:

d = {}
for key, s in df.groupby('Accession')['13mer']:
    d[key] = list(s)

这也使您将函数放在何处更加清晰!

...但是,我认为它可能更适合枚举:

d2 = {}
for pos, val in enumerate(df['13mer']):
    d2[val] = pos

我建议创建一个新字典,其值是另一个字典。 本质上是嵌套字典。

position_nmers = {}
for key in H1_Access_13mers:
    position_nmers[key] = {} # replicate key, val in new dictionary, as a dictionary
    for value in H1_Access_13mers[key]:
        position_nmers[key][value] = # do something

要对字典进行自省,并确保它没问题:

print position_nmers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM