我有pandas数据帧的列名"sample_names"列表。我使用for循环在数据帧中的每一列中传递一个函数"lambdas",这可以正常工作。但是,for循环也在重写列名列表"sample_names",以便该列表只包含最后一个样本名,而不是所有样本名。不确定为什么会发生这种情况?
sample_name列表的格式如下:['GMBP02Z1-1','GMBP02 Z1-2','GM BP02 Z2-1','GM BP02 Z1-2',…]
输出lambda_values的形式为:[数组([3.74993618-44.141515681-35.77677525299.47783486]
for i in sample_names:
sample_names = i
params = OP_constants(subset_radii, degree=4)
lambda_values.append(lambdas(np.log(subset_y2[sample_names]), subset_radii, params = params, degree = 4))
print(lambda_values)
列表对象"sample_names"存在于循环之外。循环中的第一行总是:
sample_names=i
因此,在每个循环开始时,您都将sample_names对象修改为"sample_names"列表中的最新字符串。在最后一个循环之后,这是sample_names中的最后一项。
也许将循环中的第一行(以及循环中对sample_names的所有后续引用(更改为:
sample_name=i
会实现您的目标吗?