В R (благодаря magritrr
) можно теперь выполнить операции с более функциональным синтаксисом передачи по каналу через %>%
. Это означает что вместо того, чтобы кодировать это:
> as.Date("2014-01-01")
> as.character((sqrt(12)^2)
Вы могли также сделать это:
> "2014-01-01" %>% as.Date
> 12 %>% sqrt %>% .^2 %>% as.character
Мне это более читаемо, и это расширяется на варианты использования вне кадра данных. Язык Python имеет поддержку чего-то подобного?
Существует dfply
модуль. Можно найти больше информации по телефону
https://github.com/kieferk/dfply
, который Некоторые примеры:
from dfply import *
diamonds >> group_by('cut') >> row_slice(5)
diamonds >> distinct(X.color)
diamonds >> filter_by(X.cut == 'Ideal', X.color == 'E', X.table < 55, X.price < 500)
diamonds >> mutate(x_plus_y=X.x + X.y, y_div_z=(X.y / X.z)) >> select(columns_from('x')) >> head(3)
Существует очень хорош pipe
модуль здесь https://pypi.org/project/pipe / , Он перегружается | оператор, и обеспечьте много функций канала как add, first, where, tail
и т.д.
>>> [1, 2, 3, 4] | where(lambda x: x % 2 == 0) | add
6
>>> sum([1, [2, 3], 4] | traverse)
10
Плюс, очень легко записать собственные функции канала
@Pipe
def p_sqrt(x):
return sqrt(x)
@Pipe
def p_pr(x):
print(x)
9 | p_sqrt | p_pr