簡體   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