TypeError: параметр «value» должен быть скаляром, dict или Series, но вы передали «DataFrame» в Python - PullRequest
0 голосов
/ 24 ноября 2018

В настоящее время я ломаюсь по предмету.Я не уверен, почему он ломается и какие изменения требуются.

Код:

table = df.pivot_table(values='LoanAmount', index='Self_Employed' ,columns='Education', aggfunc=np.median)

def fage(x):
    return table.loc[x['Self_Employed'],x['Education']]

#Replacing missing values

df['LoanAmount'].fillna(df[df['LoanAmount'].isnull()].apply(fage,axis=1),inplace =True) 

Вывод:

[15]: df ['LoanAmount'].fillna (df [df ['LoanAmount']. isnull ()]. ​​apply (fage, axis = 1), inplace = True)

Отслеживание (последний последний вызов):

 File "<ipython-input-15-dadf94659135>", line 1, in <module>
    df['LoanAmount'].fillna(df[df['LoanAmount'].isnull()].apply(fage,axis=1),inplace =True)

  File "/home/aryabhatta/anaconda3/lib/python3.6/site-packages/pandas/core/series.py", line 3422, in fillna
    **kwargs)

  File "/home/aryabhatta/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py", line 5400, in fillna
    '"{0}"'.format(type(value).__name__))

TypeError: "value" parameter must be a scalar, dict or Series, but you passed a "DataFrame"

1 Ответ

0 голосов
/ 24 июля 2019

Привет. Убедитесь, что

Я надеюсь, что вы не выполняли эту строку ранее для заполнения пропущенных значений LoanAmount

df['LoanAmount'].fillna(df['LoanAmount'].mean(), inplace=True)

Ошибка: LoanAmount уже заполнен другими значениямии в нем нет пропущенных значений. поэтому он выдает ошибку.

Замена отсутствующих значений:

df['LoanAmount'].fillna(df[df['LoanAmount'].isnull()].apply(fage,axis=1),inplace =True

Перед выполнением вышеуказанного кода убедитесь, что LoanAmount имеет пропущенные значения, выполните команду ниже, чтобыcheck.

df.apply(lambda x: sum(x.isnull()),axis=0)

Приведенная выше команда покажет недостающее количество LoanAmount.Если у вас пропущены значения, то только вы можете заменить либо fage, либо mean.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...