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