分组数据和过滤结果

时间:2019-08-16 07:12:03

标签: python python-2.7 pandas-groupby

我有几个与标识符有关的数据。 我想为每个ID保留观看次数最多的Sub_ID。 我使用Python 2.7。如果需要加快速度,我可以使用熊猫,但我对此并不熟悉。

示例:

--------------------------------
ID     |    Sub_ID    |   Views 
--------------------------------
345    |     4        |   120
345    |     2        |   20
555    |     10       |   33
345    |     3        |   12
122    |     4        |   540
345    |     4        |   10
122    |     1        |   300
555    |     8        |   133

我需要一些代码才能获得最终结果:

--------------------------------
ID     |    Sub_ID    |   Views 
--------------------------------
345    |     4        |   120 
555    |     8        |   133 
122    |     4        |   540

1 个答案:

答案 0 :(得分:0)

虽然可能也可以使用.groupby来进行分组,但不需要分组。

相反:

import pandas as pd

df = pd.DataFrame({'ID': [345, 345, 555, 345, 122, 345, 122, 555],
                   'Sub_ID': [4, 2, 10, 3, 4, 4, 1, 8],
                   'Views': [120, 20, 33, 12, 540, 10, 300, 133]})
print(df.sort_values(['ID', 'Views'], ascending=False).drop_duplicates(subset='ID', keep='first'))

产量:

    ID  Sub_ID  Views
7  555       8    133
0  345       4    120
4  122       4    540