Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有最佳的解决方案?_Python - Fatal编程技术网

Python 有没有最佳的解决方案?

Python 有没有最佳的解决方案?,python,Python,我有一个大数据,包含: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'].

我有一个大数据,包含: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()


非常擅长这类事情…像hiro说的那样传递给pandas是一个很好的解决方案和兼容的解决方案,或者您可以根据结果尝试使用线程运行返回到列表
IDFiltered
,通过并行执行来加速循环在这类事情上非常擅长…像hiro说的那样传递给pandas是一个很好的解决方案,并且compatible One或由于结果返回到列表
IDFiltered
,您可以尝试使用线程运行,以通过并行执行加快循环速度