我有以下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] 举报,一经查实,本站将立刻删除。