使用babypandas的assign方法为DataFrame加列时遇TypeError错误求助
解决babypandas中assign()的TypeError问题
嘿,这个错误其实很好搞定,咱们来一步步理清楚:
错误原因
你现在的写法top_10_movies.assign(Ranking)是把Ranking作为位置参数传给了assign()方法,但babypandas(和pandas逻辑一致)的assign()方法不接受这种位置参数——它要求你用关键字参数来明确指定新列的名称和对应的值。
错误提示里的“takes 1 positional argument but 2 were given”意思是:assign()本身只需要1个默认的位置参数(就是调用它的DataFrame自身,也就是top_10_movies),但你额外多传了一个Ranking作为位置参数,所以触发了类型错误。
正确的写法
你需要明确告诉assign():新列的名字是Ranking,对应的值是my_ranking,用关键字参数的形式传递即可:
import babypandas as bpd with_ranking = top_10_movies.assign(Ranking=my_ranking)
如果你的变量名和想要的列名完全一致,也可以用字典解包的方式(不过上面的写法更直接直观):
# 当变量名和列名相同时的另一种写法 new_columns = {'Ranking': my_ranking} with_ranking = top_10_movies.assign(**new_columns)
这样就能成功给top_10_movies添加名为Ranking的列,生成新的DataFramewith_ranking啦。
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

