在以下数据中:
M1 M2 M3 M4 M5 M6 M7 M8 Hx Hy S1 S2 S3 S4
A T T A A G A C A C C G C T
A T T A A G A C A C C G C T
T G C T G T T G T A A T A T
C A A C A G T C C G G A C G
G T G T A T C T G T C T T T
使用了以下代码:
d1 = d1.add('g').add(d1.shift()).dropna()
要获得:
M1 M2 M3 M4 M5 M6 M7 M8 H0 H1 S1 S2 S3 S4
AgA TgT TgT AgA AgA GgG AgA CgC AgA CgC CgC GgG CgC TgT
TgA GgT CgT TgA GgA TgG TgA GgC TgA AgC AgC TgG AgC TgT
CgT AgG AgC CgT AgG GgT TgT CgG CgT GgA GgA AgT CgA GgT
GgC TgA GgA TgC AgA TgG CgT TgC GgC TgG CgG TgA TgC TgG
但是,如果数据具有以下结构:
M1 M2 M3 M4 Hx Hy S1 S2 pos
A/T T/A A/G G/G A C C/G C/T 2
A/T T/A A/G G/G G T C/G C/T 12
T/G C/T G/T T/G C G T/T T/T 16
T/T T/T T/T T|T G T T/T T/T 17
相反,我希望每个列的所有可能字母(在前一行和当前行之间)的组合,除了pos
。你知道吗
所以,它就像:
M1 M2 Hx Hy S1 S2
AgA,AgT,TgA,TgT TgT,TgA,AgT,AgA AgA TgC CgC,CgG,GgC,GgG CgC,CgT,TgC,TgT
TgA,TgT,GgA,GgT ....
so on for all other line
我添加了一个矩阵来理解这个过程:
values from previous line in m1 (at pos 12)
A T
value from next T TgA TgT
next line pos 16 -> G GgA GgT
我尝试使用itertools将每行中的值保留为字典列表:
for row in d1_group.iterrows():
index, data = row
temp.append(data.tolist())
print(temp)
接下来,要考虑的是使用index(或pos)作为键,然后在相邻的index(或pos)值之间创建组合。你知道吗
有没有可能用熊猫或字典来做这件事。你知道吗
谢谢你
前言:
因此,让我们构建一个包含以下内容的数据帧:
现在,对于那些只需多做一点清理/准备的夫妇来说,情况也是如此:
现在可以重置索引并返回
pos
。您可能需要通过移动和适当对齐来进行调整。你知道吗相关问题 更多 >
编程相关推荐