[英]Pandas dataframe: slicing column values using second column for slice index
我正在尝试在熊猫数据框架中创建一列微卫星图案。 我有一列给出了图案的长度,另一列给出了整个微卫星。
这是感兴趣的列的示例。
motif_len sequence
0 3 ATTATTATTATT
1 4 ATCTATCTATCT
2 3 ATCATCATCATC
我想使用motif_len中的值按顺序切割值,以给出每个微卫星的单个重复(基序)。 然后,我想将所有这些主题添加为数据框中的第三列,以提供类似的结果。
motif_len sequence motif
0 3 ATTATTATTATT ATT
1 4 ATCTATCTATCT ATCT
2 3 ATCATCATCATC ATC
我尝试了一些没有运气的事情。
>>df['motif'] = df.sequence.str[:df.motif_len]
>>df['motif'] = df.sequence.str[:df.motif_len.values]
两者都是motif列,但所有值都是NaN。
我想我明白为什么这些不起作用。 我将一个系列/数组作为切片中的上部索引而不是来自mot_len列的值。
我还尝试通过迭代每个Any创建一个系列?
您可以在df pass axis=1
上调用apply
以逐行应用并使用列值对str进行切片:
In [5]:
df['motif'] = df.apply(lambda x: x['sequence'][:x['motif_len']], axis=1)
df
Out[5]:
motif_len sequence motif
0 3 ATTATTATTATT ATT
1 4 ATCTATCTATCT ATCT
2 3 ATCATCATCATC ATC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.