Python 重复a中的值;分组方式;熊猫数据帧

Python 重复a中的值;分组方式;熊猫数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据帧: email cat class_price 0 email1@gmail.com cat1 1 1 email2@gmail.com cat2 2 2 email3@gmail.com cat2 4 3 email1@gmail.com cat2 4 4 email2@gmail.com cat2 1 5 email3@

我有以下数据帧:

     email   cat  class_price
0   email1@gmail.com  cat1            1
1   email2@gmail.com  cat2            2
2   email3@gmail.com  cat2            4
3   email1@gmail.com  cat2            4
4   email2@gmail.com  cat2            1
5   email3@gmail.com  cat1            3
6   email1@gmail.com  cat1            2
7   email2@gmail.com  cat2            1
8   email3@gmail.com  cat2            4
9   email1@gmail.com  cat2            2
10  email2@gmail.com  cat3            1
11  email3@gmail.com  cat1            1
我想通过电子邮件和课堂价格进行分组,每行我想取课堂价格的最大值

我正在使用:

test_df2 = test_df.groupby(['email','cat'])['class_price'].max()
输出为:

email             cat 
email1@gmail.com  cat1    2
                  cat2    4
email2@gmail.com  cat2    2
                  cat3    1
email3@gmail.com  cat1    3
                  cat2    4
但如何才能得到即使分组的列也保留重复值的结果,从而可以将其写入包含所有值的适当表中:

email             cat      maxvalue 
email1@gmail.com    cat2     2
email1@gmail.com    cat1     2
email3@gmail.com    cat3     3

注意:示例输出与刚刚编写的示例输入不兼容。您只需重置索引,将数据放入列中即可

In [1]: print (test_df2.reset_index(name='maxvalue').to_string(index=False))
           email   cat     maxvalue
email1@gmail.com  cat1            2
email1@gmail.com  cat2            4
email2@gmail.com  cat2            2
email2@gmail.com  cat3            1
email3@gmail.com  cat1            3
email3@gmail.com  cat2            4

您可以像在其他答案中一样尝试
reset\u index
,也可以在下面进行尝试-


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


您可以从输入数据添加输出吗?或者更改输入数据以更好地理解?