【发布时间】:2019-04-02 15:43:51
【问题描述】:
我有一个需要翻译成熊猫的 excel SUMIFS,但它似乎缺少东西。
Excel
SUMIFS(C:C,$A:$A,$L2,$B:$B,$W$1)=0
熊猫
df[df['year'] == 2017 & df['company_id'].isin(df['company_id_2'])].sum(axis=0, skipna=True)['share_price']
表格
A B C ... L ... W
company_id year share_price company_id_2 2017
48299 2017 42.395 48299
48299 2016 30.82 48752
48299 2015 31.79 48865
48865 2017 24.535 49226
48865 2016 23.175 49503
48865 2015 15.7 49554
48752 2017 12.98 49697
48752 2016 15.775 50267
48752 2015 10.09 50714
第二个条件df['company_id'].isin(df['company_id_2']) 似乎存在问题。当我只有df[df['year'] == 2017].sum(axis=0, skipna=True)['share_price'] 时,我确实得到了正确的 sum 但第二个条件给出了 0.0,这是不正确的。
非常感谢任何有关如何构建第二个条件的帮助。
编辑
单独使用每个条件会产生正确的总和,但将它们组合起来却不会。至少第一行应该给出 sum df['share_price'] = 42.395,因为它满足条件,但我得到 0.0
【问题讨论】:
-
你想用
df['company_id'].isin(df['company_id_2'])做什么? -
试图对
df['share_price]求和,其中company_id_2出现在conpany_id中。所以在上面的例子中company_id_2 = 48299在company_id列中出现了3次 -
我不太明白你的意思。
company_id_2在company_id中出现多少次有关系吗?根据上表,预期的输出是什么?
标签: python pandas excel-formula