Неверный синтаксис в pandas фрейме данных - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь создать столбец '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

1 Ответ

0 голосов
/ 24 февраля 2020

Вам не хватает закрывающей скобки в лямбда-выражении:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...