gpt4 book ai didi

python - 使用 df 列的每一行中的字符串长度作为函数中的参数

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:12 24 4
gpt4 key购买 nike

我遇到了一些严重的问题!假设我有一个如下所示的 Pandas 数据框:

Name    LeftString    RightString
nameA AATCGCTGCG TGCTGCTGCTT
nameB GTCGTGBAGB BTGHTAGCGTB
nameC ABCTHJKLAA BFTCHHFCTSH
....

我有一个将以下参数作为参数的函数:

def localAlign(minAlignment, names, string1, string2):
# do something great

在我的函数中,minAlignment 是一个整数,names、string1 和 string2 是函数用作列表对象的数据框列。

然后我稍后调用该函数:

left1_2_compare = localAlign(12, df['Name'], df['LeftString'], df['RightString'])

我的函数运行没有问题,但是 12 作为硬编码值或作为 sys 参数传入,但我更希望它是一个长度为 df['LeftString 的 60% 的变量'].

所以我在这方面的尝试是传递一个计算,该计算将返回一个 int 给函数参数:

left1_2_compare = localAlign((int(len(df['LeftString'])*0.6)), 
df['Name'], df['LeftString'],
df['RightString'])

有趣的是,代码不会失败或返回错误,它只是不会为该值输出任何内容(这部分的输出文件是空白的)。其余的已经产生了良好的数据。

我们看到df在调用函数之前已经定义好了,有没有办法不用在函数内部定义,直接使用row1...rown中string的长度作为函数的输入整数呢?

最佳答案

需要 len 创建的系列, 乘以 mul并通过 astype 转换为整数:

left1_2_compare = localAlign((df['LeftString'].str.len().mul(.6)).astype(int), 
df['Name'],
df['LeftString'],
df['RightString'])

关于python - 使用 df 列的每一行中的字符串长度作为函数中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52602418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com