端到端ML项目数据转换错误:convert_to_minutes()参数不匹配
错误修复:TypeError: convert_to_minutes() takes 1 positional argument but 2 were given
问题原因
当你通过df['Duration'].apply(self.convert_to_minutes)调用方法时,Python会自动将DataTransformation的实例对象作为第一个参数传递给convert_to_minutes,但你的方法定义里只声明了duration一个参数,导致参数数量不匹配,触发了这个错误。
修复方案
你有两种可行的修复方式,根据你的需求选择:
方案1:改为实例方法(添加self参数)
如果这个方法后续需要访问类实例的属性或其他方法,给方法添加self参数即可:
class DataTransformation: def convert_to_minutes(self, duration): try: hours, minute = 0, 0 for i in duration.split(): if 'h' in i: hours = int(i[:-1]) elif 'm' in i: minute = int(i[:-1]) return hours * 60 + minute except : return None # 其他代码...
方案2:改为静态方法(使用@staticmethod装饰器)
如果这个方法不需要依赖任何实例状态,只是单纯的功能函数,用@staticmethod装饰器标记它,这样就不需要self参数:
class DataTransformation: @staticmethod def convert_to_minutes(duration): try: hours, minute = 0, 0 for i in duration.split(): if 'h' in i: hours = int(i[:-1]) elif 'm' in i: minute = int(i[:-1]) return hours * 60 + minute except : return None # 其他代码...
内容的提问来源于stack exchange,提问作者Md. Ehsanul Haque Kanan
相关产品推荐
相关产品推荐

