Python 使用多个键将数据帧转换为字典
我目前正在使用一个数据帧,该数据帧由一列13个字母字符串(“13mer”)组成,并带有ID代码(“加入”): 但是,我想创建一个字典,其中登录代码是键,值是与登录相关的13个mers,因此它看起来如下所示:Python 使用多个键将数据帧转换为字典,python,r,dictionary,pandas,nested,Python,R,Dictionary,Pandas,Nested,我目前正在使用一个数据帧,该数据帧由一列13个字母字符串(“13mer”)组成,并带有ID代码(“加入”): 但是,我想创建一个字典,其中登录代码是键,值是与登录相关的13个mers,因此它看起来如下所示: {'JO2176': ['IGY....', 'QLG...', 'ESS...', ...], 'CYO21709': ['IGY...', 'TVL...',.............], ...} 我使用以下代码实现了这一点: Accession_13mers = {} for
{'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)的函数,该函数在引用序列中查找13 mer并返回其位置。然后我想把这个位置附加为13个MER的值,这将是关键
如果有人对我如何加快这一进程有任何想法,那将非常有帮助
谢谢
Justin通过解包,您可以更干净地遍历groupby:
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