Используйте .apply
, чтобы применить нарезку к каждой строке в виде: string[start:stop]
df.apply(lambda x: x['Seq'][x['start']:x['stop']], axis=1)
0 aaabbbbbbbb
1 sssssssssssss
dtype: object
Если вы хотите определить функцию:
def slice_str(string, start, stop):
return string[start:stop]
df.apply(lambda x: slice_str(x['Seq'], x['start'], x['stop']), axis=1)
Или используяzip
с list comprehension
:
slices = [string[start:stop] for string, start, stop
in zip(df['Seq'], df['start'], df['stop'])]
['aaabbbbbbbb', 'sssssssssssss']
Используемый входной кадр данных :
start stop Seq
0 10 21 aaaaaaaaaaaaabbbbbbbbbbbbccccccccccdddddd
1 12 25 aaaaahhhhhhhsssssssssssssscccccccccdddddd