我有几个与标识符有关的数据。 我想为每个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
答案 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