gpt4 book ai didi

pandas - 如果失败,继续对下一个 groupby 组进行 qcut?

转载 作者:行者123 更新时间:2023-12-01 12:25:05 24 4
gpt4 key购买 nike

我对 groupby 结果应用 qcut,以下是我的问题的简化版本:

a = pd.DataFrame({'A':[1,1,1,1,2,2,2,2],
'B': [0,0,0,0,2,3,7,6]})
a.groupby(['A'])['B'].apply(lambda x: pd.qcut(x, 2))

问题是,一些小组提出了 ValueError 因为

raise ValueError('Bin edges must be unique: %s' % repr(bins))
ValueError: Bin edges must be unique: array([ 0., 0., 0.])

我想要实现的是,如果 qcut 失败,跳过(或传递 0 作为结果)并继续下一组的 qcut。有什么建议吗?

最佳答案

@JohnE 的回答略有不同,以允许我们保留 apply 语法。

def try_qcut(x,n):
try:
return pd.qcut(x,n)
except ValueError:
return x*np.nan

a.groupby('A')['B'].apply(lambda x: try_qcut(x, 2))

0 NaN
1 NaN
2 NaN
3 NaN
4 [2, 4.5]
5 [2, 4.5]
6 (4.5, 7]
7 (4.5, 7]
Name: B, dtype: object

关于pandas - 如果失败,继续对下一个 groupby 组进行 qcut?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40581769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com