首页 > 解决方案 > 对此有最佳解决方案吗?

问题描述

我有一个大数据,其中包含:ID、年份、程序。如果一个特定的程序说 A 比另一个程序说 B 具有更多的年份值(例如:2019>2018),我想过滤掉 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()

标签: python

解决方案


推荐阅读