【发布时间】:2021-03-06 00:26:06
【问题描述】:
作为课程练习的一部分,我正在处理数据集,但我陷入了一个特定的步骤。我已经尝试过使用 R,但我希望在 python 中做同样的事情。我对 python 比较陌生,所以需要帮助。
数据集由名称为“Seq”的列和 seq(5000+) 条记录组成。我有另一列名为“MainSeq”的列,其中包含子字符串 seq 值。我需要根据给定的起始位置检查 MainSeq 上是否存在 seq,然后在 seq 的每个字母之前和之后打印 7 个字母。 IE。 我在 col 'MainSeq' 中有一个值为 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'。 Col 'Seq' 包含值 JKLMNO J= 10 和 O= 15 的起始位置
我需要创建一个新列,以便在从 J 到 O 的起始字母之前和之后需要 7 个字母,即总长度为 15
CDEFGHI**J**KLMNOPQ
DEFGHIJ**K**LMNOPQR
EFGHIJK**L**MNOPQRS
FGHIJKL**M**NOPQRST
GHIJKLM**N**OPQRSTU
HIJKLMN**O**PQRSTUV
我知道将逻辑应用于特定的序列。但由于我有大约 5000 多条 seq 记录,我需要想办法在所有 seq 记录上应用相同的记录。
seq = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
i = seq.index('J')
j = seq.index('O')
value = 7
for mid in range(i, 1+j):
print(seq[mid-value:mid+value+1])
【问题讨论】:
-
“J”和“O”从何而来?
-
JKLMNO 是 col 'seq' 下的 seq,属于 col 'MainSeq' 中的 seq。对于 col 'seq' 下的所有此类值,我需要执行上述步骤。
标签: python-3.x dataframe jupyter-notebook data-science