我有一个大数据,其中包含:ID,年,程序。如果某个特定程序说A的年值(例如:2019> 2018)比另一程序说B的值大,我想过滤掉ID。我有一个解决方案,但其中涉及一个循环。我想知道是否还有另一种方法。 我的代码:
unique = list(set(finalAD['ID']))
IDFiltered = []
for i in unique:
data = finalAD[finalAD['ID'] == i]
AD1 = data[data['Program'].str.match('AD')]
ind = list(AD1.index.values)
AD2 = data.drop(ind)
date1 = AD1['Year'].max()
date2 = AD2['Year'].min()
if(date2 > date1):
IDFiltered.append(i)
newData = finalAD[finalAD['ID'].isin(IDFiltered)]
newData.reset_index(drop = True, inplace = True)
newData.head()