![](/img/trans.png)
[英]Converting pandas dataframe to dictionary with same keys over multiple rows
[英]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.