我有以下数据帧:
date, item, value
2015-01-20 abc 1
2015-01-20 xyz -1
2015-01-20 fgh 1
2015-01-20 iop -1
2015-01-21 abc 1
2015-01-21 xyz 1
2015-01-21 fgh -1
2015-01-21 iop 1
我需要检查每一天并标记一个项目,如果它是当天唯一一个与其他项目有不同价值的项目。它们可以有任何值,关键是确定每天只有一个项目与其他项目不同。在
例如,在2015-01-20中,两个项目的值为1,两个项目的值为-1,因此没有要标记的内容。但是在2015-01-21,只有一个项目的值为-1,而其他项目的值为1,因此我需要标记项目“fgh”。在
因此,上述结果将是:
^{pr2}$我不知道熊猫体内有什么东西可以做这个?如果没有,有没有一个相当优雅的方法来实现这一点。在
编辑
为了简化,我可以确保value列要么是正的,要么是负的,这意味着我只需要确定一个值是正值,而其他值是负的,反之亦然。在
您可以分两步完成:
首先使用
groupby
来获得所需的聚合函数,在本例中,每个日期和值对应一个标志:然后合并回原始数据帧,以便针对每行显示聚合:
^{pr2}$相关问题 更多 >
编程相关推荐