我绞尽脑汁想弄清楚如何在Python的库polars中使用groupby
和apply
来自熊猫,我使用:
def get_score(df):
return spearmanr(df["prediction"], df["target"]).correlation
correlations = df.groupby("era").apply(get_score)
但在北极,这是行不通的
我尝试了几种方法,主要围绕:
correlations = df.groupby("era").apply(get_score)
但此操作失败,并显示错误消息:
'Could net get DataFrame attribute '_df'. Make sure that you return a DataFrame object.: PyErr { type: <class 'AttributeError'>, value: AttributeError("'numpy.float64' object has no attribute '_df'"),
有什么想法吗
从
polars>=0.10.4
开始,您可以使用pl.spearman_rank_corr
函数如果要使用自定义函数,可以这样做:
多个列/表达式上的自定义函数
极性提供了功能
两种输出:
单个列/表达式上的自定义函数
我们还可以通过
.apply
或.map
对单个表达式应用自定义函数下面是一个示例,说明如何使用自定义函数和法线极性表达式对列进行平方运算。表达式语法 应该是首选,因为它的速度快得多
{}和{}之间有什么区别?
map
对整个列series
起作用apply
根据上下文对单个值或单个组起作用select
上下文:map
Series
apply
Union[int, float, str, bool]
groupby
上下文:map
Series
apply
Series
相关问题 更多 >
编程相关推荐