根据标签的多数计数过滤数据框中的重叠行

时间:2017-11-05 12:40:44

标签: python pandas dataframe pandas-groupby

如何使用重叠标签过滤重复的行?我需要一个Dataframe的子集,其中重复的行被替换为一行,其标签计数最大。

考虑数据框df

df = pd.DataFrame({
 'X' : [1, -1, 1, 1, 3, -2, -1, -1],
 'Y' : [2, 3, 2, 2, 2, -1, 3, 3],
 'label' : [0, 1, 1, 0, 2, 1, 2, 2]
})

过滤后,预计会出现以下子集df_output

df_output = pd.DataFrame({
 'X' : [1, -1, 3, -2], 
 'Y' : [2, 3, 2, -1],
 'label' : [0, 2, 2, 1]
})

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找groupby模式,即

df.groupby(['X','Y'])['label'].apply(lambda x : x.mode().values[0]).reset_index()

输出:

  X  Y  label
0 -2 -1      1
1 -1  3      2
2  1  2      0
3  3  2      2