res*_*cot 3 python numpy dataframe pandas
我收到以下代码错误:
np.where(df['A'].groupby([df['B'], df['B_1']]).sum() > 0, 1, 0)
错误: ValueError: operands could not be broadcast together with shapes (2013,) (1353,) ()
groupby里面可以做熊猫吗np.where?
做这个的最好方式是什么?
我想要sum一个列,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), None)
Excel 的SUMIFS返回内联聚合基于返回值与输入值长度相同的条件(即计算之前和之后)。
要获得类似的结果,请考虑 pandasgroupby().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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6769 次 |
| 最近记录: |