У меня серьезные проблемы с этим!Предположим, у меня есть кадр данных pandas, подобный следующему:
Name LeftString RightString
nameA AATCGCTGCG TGCTGCTGCTT
nameB GTCGTGBAGB BTGHTAGCGTB
nameC ABCTHJKLAA BFTCHHFCTSH
....
У меня есть функция, которая принимает следующие аргументы:
def localAlign(minAlignment, names, string1, string2):
# do something great
В моей функции minAlignment представляет собой целое число, имена,string1 и string2 - столбцы данных, используемые функцией в качестве объектов списка.
Затем я вызываю функцию на более позднем этапе:
left1_2_compare = localAlign(12, df['Name'], df['LeftString'], df['RightString'])
Моя функция выполняется без проблем, но 12 передается как жестко закодированное значение или как аргумент sys,но я бы предпочел, чтобы это была переменная, которая на 60% длиннее df ['LeftString'].
Так что я попытался в этом отношении передать вычисление, которое вернуло быint к аргументу функции:
left1_2_compare = localAlign((int(len(df['LeftString'])*0.6)),
df['Name'], df['LeftString'],
df['RightString'])
Интересно то, что код не дает ошибок и не возвращает ошибок, он просто ничего не выводит для этого значения (выходной файл для этого пустчасть).В остальном данные получены и хороши.
Мы видим, что df был определен до вызова функции, есть ли способ использовать длину строки в строке1 ... rown в качестве входного целого числа для функции, не определяя ее внутри функции?