我一直在寻找一种方法,在一系列基于组的行中找到第一个发生的情况。你知道吗
首先,我对每个组应用了一个“组”计数器。然后我想返回status下第一个或第一个'sell'的ID作为一个新列,并将其应用于整个组。你知道吗
下面的例子。Final\u 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')
但我不确定这样做是否正确。。还有其他想法吗?你知道吗
假设ID列已经排序,您可以执行以下操作:
您需要查找已售出的行、删除
status
列、groupby ongroup
、not onID
、domin
。你知道吗输出:
在
status
不是sold
的地方屏蔽你的ID
序列,然后按你的组和transform
first
分组,它为每个组选择第一个非NaN
值,在这种情况下,这是sold
的第一次出现相关问题 更多 >
编程相关推荐