Как убрать лишние значения из вывода?
Составил функцию для анализа данных колонки датафрейма.
def test(df, colx):
dfx = df[colx]
a1 = pd.DataFrame(dfx.value_counts())
a1['percent'] = round((a1[colx] * 100 / len(df)), 2)
a2 = display(a1, f'Процент незаполненных значений: {round((100 - a1.percent.sum()), 2)}')
return a2, df.loc[:, [colx]].info()
test(menu, 'soop') # функция вывода
Но при выводе получаются лишние данные.
soop percent
GP 349 88.35
MS 46 11.65
'Процент незаполненных значений: 0.0'
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 395 entries, 0 to 394
Data columns (total 1 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 soop 395 non-null object
dtypes: object(1)
memory usage: 3.2+ KB
(None, None)
А именно последняя строка (None, None) мне не нужна. И строку 'Процент незаполненных значений: 0.0' нужно избавить от кавычек.
Ответы (2 шт):
Нашёл решение сам. Всем спасибо за участие!
def test(df, colx):
dfx = df[colx]
a1 = pd.DataFrame(dfx.value_counts())
a1['percent'] = round((a1[colx] * 100 / len(df)), 2)
b1 = round((100 - a1.percent.sum()), 2)
display(a1), print(f'Процент незаполненных значений: {b1}'), df.loc[:, [colx]].info()
Если у вас интерактивный питон, например Jupyter Notebook, то он выводит на печать результат выполнения последней команды в ячейке. Если последняя команда у вас вызов функции test, то, соответственно, Jupyter Notebook выведет на печать то, что возвращает функция test, а она у вас возвращала, видимо, два None: display и df.info() печатают информацию на экран и возвращают при этом None. Решения тут на самом деле возможно два:
- не возвращать ничего из функции
test(убратьreturn) - добавить знак
;в конец строки с вызовом функцииtestи тогдаJupyter Notebookне будет печатать результат выполнения этой функции