dataframe中的语法无效

2024-09-29 23:31:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个列“mdiff”,计算“POP…”列的最大值和最小值之间的差异。 它在第行给出了一个语法错误,其中:res=df1.nlargest(1)(我试图在这里获取最大值)。我不确定这里会出什么问题? 数据是一个带有列CTYNAME, POPOPESTIMATE2010,..2011,..2012,..2013,..2014..2015.的数据帧

def maxdiff():
    rows =['POPESTIMATE2010',
    'POPESTIMATE2011',
    'POPESTIMATE2012',
    'POPESTIMATE2013',
    'POPESTIMATE2014',
    'POPESTIMATE2015']
    df1=df.where(df['SUMLEV']==50).set_index(['CTYNAME']).dropna()
    df1['mdiff']=df1.apply(lambda x: abs(np.max(x[rows]-np.(min(x[rows])), 
    axis=1)
    dmax=df1.nlargest(1,'mdiff')   

    return dmax

Tags: 数据dfdefnpres差异poprows
1条回答
网友
1楼 · 发布于 2024-09-29 23:31:03

lambda表达式中缺少右括号:

def maxdiff():
    rows = [
        "POPESTIMATE2010",
        "POPESTIMATE2011",
        "POPESTIMATE2012",
        "POPESTIMATE2013",
        "POPESTIMATE2014",
        "POPESTIMATE2015",
    ]
    df1 = (
        df.where(df["SUMLEV"] == 50)
        .set_index(["CTYNAME"])
        .dropna()
    )
    df1["mdiff"] = df1.apply(
        lambda x: abs(np.max(x[rows] - np.min[rows])),  # <  One more `)` here!
        axis=1
    )
    dmax = df1.nlargest(1, "mdiff")

    return dmax

相关问题 更多 >

    热门问题