Rのmagrittrの%>%のようなPythonの機能パイプ 質問する

Rのmagrittrの%>%のようなPythonの機能パイプ 質問する

Rでは(マグリット) では、 を介してより機能的なパイプ構文で操作を実行できるようになりました%>%。つまり、次のようにコーディングする代わりに、

> as.Date("2014-01-01")
> as.character((sqrt(12)^2)

次のようにすることもできます:

> "2014-01-01" %>% as.Date 
> 12 %>% sqrt %>% .^2 %>% as.character

私にとっては、この方が読みやすく、データフレームを超えたユースケースにも拡張されます。Python 言語には同様の機能のサポートがありますか?

ベストアンサー1

パイプは、パンダ 0.16.2

例:

import pandas as pd
from sklearn.datasets import load_iris

x = load_iris()
x = pd.DataFrame(x.data, columns=x.feature_names)

def remove_units(df):
    df.columns = pd.Index(map(lambda x: x.replace(" (cm)", ""), df.columns))
    return df

def length_times_width(df):
    df['sepal length*width'] = df['sepal length'] * df['sepal width']
    df['petal length*width'] = df['petal length'] * df['petal width']
    
x.pipe(remove_units).pipe(length_times_width)
x

注意: Pandas バージョンは Python の参照セマンティクスを保持します。そのため、length_times_width戻り値は必要なく、そのx場で変更されます。

おすすめ記事