Я хочу написать декоратор, который я могу использовать для функций, написанных для Pandas DataFrame, так что, когда они получают вход, который на самом деле является серией (или, может быть, даже массивом) он сначала преобразует этот ввод в одностоечный Pandas DataFrame из общности. Таким образом, я могу заставить каждую функцию работать как для DataFrames, так и для функций записи строк только для DataFrames.Декоратор для передачи серии pandas в одностолбцовые DataFrames
Что-то вроде
@wraps
def does_smt(df, **kwargs):
for c in df.columns:
df[c] = do_something(df[c], df.index)
return df
does_smt(series) # and it also works
Я не слишком хорошо с питона декораторов пока нет, но судя по ureg.wraps декоратора Pint, я имею в виду, что может быть сделано. Я проверил этот декоратор, но, опять же, поскольку у меня возникли проблемы с пониманием декораторов, я не мог понять, как его адаптировать. Я также искал декоратора, который уже был определен в Пандах, но, похоже, его нет.
Первый вопрос: как я могу это сделать?
Второй: рекомендуется ли это, или есть лучший способ?
Приветствия
спасибо. Это общее решение также довольно аккуратно, хотя я, вероятно, буду использовать ваши. Кроме того, я знаю, что это не было в вопросе (я отредактирую или задаю другой вопрос, если вы захотите), но в случае ввода в серии, есть ли способ переконвертировать вывод в серию в конце ? – TomCho
Не обращай внимания, понял! Эта ссылка, которую вы мне дали, на самом деле действительно хороша, объясняя декораторам. Я не знаю, почему я никогда не пробовал Cookbook python. В любом случае, еще раз спасибо. – TomCho