为何出现SyntaxError:位置实参位于关键字实参之后?求解决方法
问题解决:melt方法触发SyntaxError错误
错误原因
你的代码里,id_vars='Sort_order'是关键字参数,后面直接跟的'year'属于位置参数。Python语法明确规定关键字参数之后不能出现未指定参数名的位置参数,这就是报错的核心原因。
修正后的代码
把需要作为标识变量的列名打包成列表(或元组),统一传给id_vars参数即可:
sub4 = sub4.melt(id_vars=['Sort_order', 'year'], var_name='sex', value_name="International_migrant_stock_at_mid-year")
补充说明
melt方法的id_vars参数接受序列类型(列表、元组均可),用来指定不需要被拆分的标识列。你原本的写法相当于只给id_vars传了'Sort_order',又把'year'当成了无参数名的位置参数传入,这完全不符合方法的参数要求,所以必须将多个标识列放在同一序列里传递。
内容的提问来源于stack exchange,提问作者Tommy Wang
相关产品推荐
相关产品推荐

