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()
您可以从输入数据添加输出吗?或者更改输入数据以更好地理解?