繁体   English   中英

Pandas数据帧:使用第二列切片列索引切片列值

[英]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.

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