【发布时间】:2019-12-20 07:05:20
【问题描述】:
我一直在寻找一种方法来根据组在一系列行中找到第一次出现。
首先,我检查并为每个组应用了一个“组”计数器。然后我想将状态下“已售”的第一个 orruance 的 ID 作为新列返回,并将其应用于整个组。
示例如下。 Final_ID 是要创建的新列。
group ID status Final_ID
1 100 view 103
1 101 show 103
1 102 offer 103
1 103 sold 103
1 104 view 103
2 105 view 106
2 106 sold 106
2 107 sold 106
3 108 pending 109
3 109 sold 109
3 110 view 109
4 111 sold 111
4 112 sold 111
4 113 sold 111
4 114 sold 111
我尝试过使用
df = pd.DataFrame ({'group':['1','1','1','1','1','2','2','2','3','3','3','4','4','4','4'],
'ID':['100','101','102','103','104','105','106','107','108','109','110','111','112','113','114'],
'status':['view','show','offer','sold','view','view','sold','sold','pending','sold','view','sold','sold','sold','sold']
})
df2=df[( df.status=='sold')][['group','ID']].groupby('group'['ID'].apply(min).reset_index()
df2=df.merge(df2, on='group' , how='left')
但我不确定这是否是正确的方法。还有其他想法吗?
【问题讨论】:
标签: python string pandas list min