Сделать функцию доступной для всех кодов - PullRequest
0 голосов
/ 01 ноября 2019

Недавно я нашел очень полезную функцию, опубликованную в Kaggle . Это обеспечивает сводку всех столбцов данных.

def resumetable(df):
    print(f"Dataset Shape: {df.shape}")
    summary = pd.DataFrame(df.dtypes,columns=['dtypes'])
    summary = summary.reset_index()
    summary['Name'] = summary['index']
    summary = summary[['Name','dtypes']]
    summary['Missing'] = df.isnull().sum().values    
    summary['Uniques'] = df.nunique().values
    summary['First Value'] = df.loc[0].values
    summary['Second Value'] = df.loc[1].values
    summary['Third Value'] = df.loc[2].values

    for name in summary['Name'].value_counts().index:
        summary.loc[summary['Name'] == name, 'Entropy'] = round(stats.entropy(df[name].value_counts(normalize=True), base=2),2) 

    return summary

Мне нравится использовать эту функцию во ВСЕХ кодах, которые я пишу. Как я могу добиться этого без написания вышеуказанной функции во всех кодах.

Я смутно знаю, что эта функция должна быть внутри кода с расширением .py и помещена в соответствующий каталог. Но не знаю правильных деталей.

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Сохраните функцию в файле .py в определенном каталоге. Например. resume.py Чтобы использовать его в другом файле

1 голос
/ 01 ноября 2019

Вы можете поместить это в файл где-нибудь (например, /home/user/lib/kaggle.py) и добавить переменную окружения, вызвав export PYTHONPATH=/home/user/lib/. Затем вы можете импортировать эту функцию с помощью from kaggle import resumetable (при условии, что у вас нет другого модуля с именем kaggle)

Обратите внимание, что вызов export истечет срок действия переменной после закрытия оболочки, поэтомуесли вы хотите сохранить его, вы можете добавить export PYTHONPATH=/home/user/lib/ к файлу в ~/.profile и затем вызвать source ~/.profile

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