【发布时间】:2021-08-06 05:30:44
【问题描述】:
这是我的代码:
def value_and_wage_conversion(value):
if isinstance(value,str):
if 'M' in out:
out = float(out.replace('M', ''))*1000000
elif 'K' in value:
out = float(out.replace('K', ''))*1000
return float(out)
fifa_18['Value'] = fifa_18['Value'].apply(lambda x: value_and_wage_conversion(x))
fifa_18['Wage'] = fifa_18['Wage'].apply(lambda x: value_and_wage_conversion(x))
这是错误信息:
----------------------------------- ---------------------------- UnboundLocalError Traceback(最近调用 最后)在 7 返回浮点数(出) 8 ----> 9 fifa_18['Value'] = fifa_18['Value'].apply(lambda x: value_and_wage_conversion(x)) 10 fifa_18['Wage'] = fifa_18['Wage'].apply(lambda x: value_and_wage_conversion(x))
c:\users\brain\appdata\local\programs\python\python39\lib\site-packages\pandas\core\series.py 在应用(自我,函数,convert_dtype,args,**kwds)4136
否则:4137 个值 = self.astype(object)._values -> 4138 mapped = lib.map_infer(values, f, convert=convert_dtype) 4139 4140 if len(mapped) and isinstance(mapped[0], 系列):pandas_libs\lib.pyx in pandas._libs.lib.map_infer()
在 (x) 7 返回浮点数(出) 8 ----> 9 fifa_18['Value'] = fifa_18['Value'].apply(lambda x: value_and_wage_conversion(x)) 10 fifa_18['Wage'] = fifa_18['Wage'].apply(lambda x: value_and_wage_conversion(x))
在 value_and_wage_conversion(value) 1 def value_and_wage_conversion(value): 2 如果是实例(值,str): ----> 3 如果 'M' 进出: 4 out = float(out.replace('M', ''))*1000000 5 elif 'K' 的值:
UnboundLocalError:赋值前引用了局部变量“out”
【问题讨论】:
-
将
if 'M' in out:更改为if 'M' in value: -
第三行:
if 'M' in out:你想拥有if 'M' in value:此外,第二行:if isinstance(value,str):应该是if isinstance(value:str): -
显示此错误:文件“
”,第 2 行 if isinstance(value:str): ^ SyntaxError: invalid syntax
标签: pandas