Использовать результат виджета Jupyter для последующих операций внутри функции? - PullRequest
0 голосов
/ 09 апреля 2020

Я хочу, чтобы пользовательская функция упростила импорт данных в pandas. Я хочу использовать виджет SelectMultiple в ipywidgets, чтобы выбрать, какие столбцы df я хочу отбросить (и впоследствии, для каких столбцов я хочу преобразовать в различные типы dty, которые нужно указать в качестве индекса, хочу ли я удалять строки с нулями и т. Д. c.).

Если я запускаю строки ниже в отдельных ячейках по одной, я получаю нужный результат. Но если я запускаю import_df (), чтобы поместить все это в один шаг, я получаю ошибку (объект 'NoneType' не повторяется), потому что он не ждет моего пользовательского ввода в строке 5 перед выполнением строк 6-7. Как я могу заставить его ждать ввода пользователя, прежде чем двигаться дальше?

def import_df():
    global df
    file = str(input('Paste file pathname here: '))
    df = pd.read_csv(f'{file}')
    cols = widgets.interact_manual(lambda x: x, x = widgets.SelectMultiple(options = df.columns))
    keep = list(cols.widget.result)
    df.drop(df.columns.difference(keep), 1, inplace = True)
...