gpt4 book ai didi

python - np.where 中的 Pandas GROUPBY

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:46 24 4
gpt4 key购买 nike

我收到以下代码的错误:

np.where(df['A'].groupby([df['B'], df['B_1']]).sum() > 0, 1, 0)

错误: ValueError:操作数无法与形状一起广播 (2013,) (1353,) ()

是否可以在 np.where 中执行 pandas groupby

执行此操作的最佳方法是什么?

我想求和df[A],其中列df[B]df[B_1]

Excel 中的公式:

=IF($J3=$C3,IF(SUMIFS($S:$S,$A:$A,$A3,$C:$C,$C3)>0,1,0) ,"")

python 中的公式:

df['C'] = np.where(df['B_1'] == df['B'], np.where(df['competing'].groupby([df['company_id '], df['company_id.1']]).sum() > 0, 1, 0), 无)

最佳答案

Excel 的 SUMIFS 根据返回值与输入值长度相同的条件(即计算前后)返回内联聚合。

要获得类似的结果,请考虑 pandas 的 groupby().transform()它还返回内联聚合,其中返回的列与输入列的长度相同。单独运行 groupby() 会将记录折叠成那些返回不同长度值的分组。

df['C'] = np.where(df['B_1'] == df['B'], 
np.where(df.groupby(['company_id', 'company_id.1'])['competing'].transform('sum') > 0, 1, 0),
np.nan)

关于python - np.where 中的 Pandas GROUPBY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53597236/

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