Python DataFrame apply 函数报错:`f5 = f4.iloc[:, 4:].apply(lambda x: x[:, :-1]*x[-1]*10000, axis=1)` 错误分析及解决方法
这段代码会报错的原因是,apply 函数默认将 DataFrame 的每一列作为 Series 对象传递给 lambda 函数进行操作,而 x 的类型是 Series 对象,不支持使用索引操作。
如果想要实现的功能是对每一行的某些列进行操作,可以使用 apply 函数的另一个参数 axis=1,将每一行作为 Series 对象传递给 lambda 函数进行操作。
修改后的代码如下:
f5 = f4.iloc[:, 4:].apply(lambda x: x[:-1]*x[-1]*10000, axis=1)
这样就可以对每一行的某些列进行操作了。
原文地址: https://www.cveoy.top/t/topic/lO2E 著作权归作者所有。请勿转载和采集!