【发布时间】:2021-11-24 01:14:15
【问题描述】:
我有一个大型数据框,其中大部分都有唯一值,但仍然有多个相同的 ID 存储了不同的值。我想对相同的 ID 进行分组,然后对这些 ID 应用逻辑以从中选择一个,然后删除其他 ID。
df = pd.DataFrame({'ID': [11, 11,11,11,22,22,33] ,
'Source': [2, 2,4,3,3,2,3],
'Price':[10, 20,30,40,50,60,70]})
逻辑是:如果组中有一行 SOURCE==4 保留并删除其他行 else 在组中有一行 SOURCE==2 保留并删除其他行 else 在组中有一行 SOURCE==3 保留并删除其他 所以层次结构是基于源列的,它是4>2>3。
预期输出:
expected = pd.DataFrame({'ID': [11,22,33] ,
'Source': [4,2,3],
'Price':[30,60,70]})
如果 source ==4 then hierarchy ==1... 则创建一个新的层次结构列,然后对其进行排序并选择 nth(1) 。但是我最想知道如何在 groupby 之后进行条件选择。
【问题讨论】:
标签: python pandas dataframe conditional-statements pandas-groupby