-:'list'和'list'的不受支持的操作数类型

时间:2019-11-03 17:48:45

标签: pandas list

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函数来获取最大差值,后者使用一个列表减去另一个列表。有人可以向我解释为什么我的代码不起作用,但是我的代码却起作用吗?谢谢!

1 个答案:

答案 0 :(得分:1)

问题在这里-

return counties[[counties.max(axis=1)]-[counties.min(axis=1)]]

您要减去两个列表,我认为下面的编辑应该可以使之工作

return counties[counties.max(axis=1)-counties.min(axis=1)]