import numpy as np
def answer_seven():
counties = census_df[['POPESTIMATE2010','POPESTIMATE2011','POPESTIMATE2012','POPESTIMATE2013','POPESTIMATE2014','POPESTIMATE2015']]
return counties[[counties.max(axis=1)]-[counties.min(axis=1)]].abs().idxmax()
TypeError: unsupported operand type(s) for -: 'list' and 'list'
上面是我的代码不起作用,我收到了此错误消息。
但是下面的代码确实有效。
import numpy as np
def answer_seven():
counties_df = census_df[census_df['SUMLEV'] == 50][['CTYNAME','POPESTIMATE2010','POPESTIMATE2011','POPESTIMATE2012','POPESTIMATE2013',
'POPESTIMATE2014','POPESTIMATE2015']]
counties_df["MaxDiff"] = abs(counties_df.max(axis=1) - counties_df.min(axis=1))
most_change = counties_df.sort_values(by=["MaxDiff"], ascending = False)
return most_change.iloc[0][0]
它使用max和min函数来获取最大差值,后者使用一个列表减去另一个列表。有人可以向我解释为什么我的代码不起作用,但是我的代码却起作用吗?谢谢!
答案 0 :(得分:1)
问题在这里-
return counties[[counties.max(axis=1)]-[counties.min(axis=1)]]
您要减去两个列表,我认为下面的编辑应该可以使之工作
return counties[counties.max(axis=1)-counties.min(axis=1)]