微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在“group by”pandas数据帧中重复值

我有以下pandas DataFrame:

     email   cat  class_price
0   [email protected]  cat1            1
1   [email protected]  cat2            2
2   [email protected]  cat2            4
3   [email protected]  cat2            4
4   [email protected]  cat2            1
5   [email protected]  cat1            3
6   [email protected]  cat1            2
7   [email protected]  cat2            1
8   [email protected]  cat2            4
9   [email protected]  cat2            2
10  [email protected]  cat3            1
11  [email protected]  cat1            1

我想通过电子邮件和class_price进行分组,对于每行我想要占用class_price的最大值.

我正在使用:

test_df2 = test_df.groupby(['email','cat'])['class_price'].max()

输出是:

email             cat 
[email protected]  cat1    2
                  cat2    4
[email protected]  cat2    2
                  cat3    1
[email protected]  cat1    3
                  cat2    4

但是,如果组合列保留重复值,我怎么能得到一个结果,这样它就可以写成包含所有值的正确表:

email             cat      maxvalue 
[email protected]    cat2     2
[email protected]    cat1     2
[email protected]    cat3     3

注意:示例输出与刚刚编写的示例输入不兼容以解释该想法.

解决方法:

您可以重置索引,将数据放入列中.

In [1]: print (test_df2.reset_index(name='maxvalue').to_string(index=False))
           email   cat     maxvalue
[email protected]  cat1            2
[email protected]  cat2            4
[email protected]  cat2            2
[email protected]  cat3            1
[email protected]  cat1            3
[email protected]  cat2            4

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐