pandas.core.resample.Resampler.pipe#
- final Resampler.pipe(func, *args, **kwargs)[源代码][源代码]#
将
func
及其参数应用于此 Resampler 对象并返回其结果。当你想通过将期望 Series、DataFrames、GroupBy 或 Resampler 对象的函数链接在一起以提高可读性时,请使用 .pipe。
>>> h = lambda x, arg2, arg3: x + 1 - arg2 * arg3 >>> g = lambda x, arg1: x * 5 / arg1 >>> f = lambda x: x ** 4 >>> df = pd.DataFrame([["a", 4], ["b", 5]], columns=["group", "value"]) >>> h(g(f(df.groupby('group')), arg1=1), arg2=2, arg3=3)
你可以写
>>> (df.groupby('group') ... .pipe(f) ... .pipe(g, arg1=1) ... .pipe(h, arg2=2, arg3=3))
这更加易读。
- 参数:
- func可调用对象或 (可调用对象, str) 的元组
要应用于这个 Resampler 对象的函数,或者是一个 (可调用对象, data_keyword) 元组,其中 data_keyword 是一个字符串,指示 可调用对象 中期望 Resampler 对象的关键字。
- *args可迭代对象, 可选
传递给 func 的位置参数。
- **kwargsdict, 可选
传递给 func 的关键字参数的字典。
- 返回:
- Resampler
应用了函数 func 的原始对象。
参见
Series.pipe
将带有参数的函数应用于序列。
DataFrame.pipe
将带有参数的函数应用于数据框。
apply
将函数应用于每个组,而不是应用于完整的 Resampler 对象。
备注
更多内容请参见 这里。
示例
>>> df = pd.DataFrame({'A': [1, 2, 3, 4]}, ... index=pd.date_range('2012-08-02', periods=4)) >>> df A 2012-08-02 1 2012-08-03 2 2012-08-04 3 2012-08-05 4
要在一次遍历中获取每个2天期间的最大值和最小值之间的差异,你可以这样做
>>> df.resample('2D').pipe(lambda x: x.max() - x.min()) A 2012-08-02 1 2012-08-04 1