首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python如何将方法从一个库应用到另一个库的对象?

Python如何将方法从一个库应用到另一个库的对象?
EN

Stack Overflow用户
提问于 2020-08-25 13:44:46
回答 2查看 213关注 0票数 3

当使用pandarallel在我的数据文件上运行.apply方法时使用所有核心时,我遇到了一种以前从未见过的语法。相反,这是一种我不理解的使用点语法的方法。

代码语言:javascript
复制
import pandas as pd
from pandarallel import pandarallel

df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=['a', 'b'])

到目前为止还不错,只是建立了一个数据框架。接下来,为了让pandarallel做好准备,我们做了

代码语言:javascript
复制
pandarallel.initialize()

接下来是我感到困惑的地方:为了在dataframe上调用这个方法

代码语言:javascript
复制
df.parallel_apply(func)

我的问题是:如果dataframe df是使用pandas库实例化的,而pandas没有一个名为parallel_apply的方法,那么在pandas对象上如何使用pandarallel方法呢?

我猜想这与初始化有关,但我以前从未见过这种情况,我不明白后端发生了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-25 13:56:09

可以将方法创建到以前创建的对象:

代码语言:javascript
复制
def my_func(self):
    return 2*self


pd.DataFrame.my_method = my_func

df.my_method()

a   b
2   8
4  10
6  12

您甚至可以传递参数:

代码语言:javascript
复制
def sum_x(self, x):
    return self+x

pd.DataFrame.sum_x = sum_x

df.sum_x(3)
a  b
4  7
5  8
6  9

第一个参数是self,它是类中的一个常用方法。

票数 3
EN

Stack Overflow用户

发布于 2020-08-25 13:50:24

它似乎发生在initialize

代码语言:javascript
复制
DataFrame.parallel_apply = parallelize(*args)

似乎Dataframes允许稍后添加属性,这就是这里所发生的事情。parallelize似乎是一个工厂函数,它基于传递的args创建函数。它似乎正在创建作为方法的函数,并且它创建的方法被分配给parallel_apply

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63580226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档