Я хотел бы создать простой конвейер, я нашел этот > простой пример:
"""
From /info/33100/piping-output-from-one-function-to-another-using-python-infix-syntax
"""
import collections
def pipe(original):
"""
"""
class PipeInto(object):
data = {'function': original}
def __init__(self, *args, **kwargs):
self.data['args'] = args
self.data['kwargs'] = kwargs
def __rrshift__(self, other):
return self.data['function'](
other,
*self.data['args'],
**self.data['kwargs']
)
def __call__(self):
return self.data['function'](
*self.data['args'],
**self.data['kwargs']
)
return PipeInto
@pipe
def select(df, *args):
cols = [x for x in args]
return df[cols]
Пока df >> select('one')
отлично работает, pipe= select(df, 'one')
возвращает объект, который нужно вызвать. Как select(df, 'one')
работает как простой вызов функции, который возвращает отфильтрованный DataFrame?