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'].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()
解决方案
推荐阅读
- swift - 快速查找和更改属性字符串中的范围
- python - 如何将 keras 模型与其他数据一起保存并完全加载?
- python - PUDB 错误:
- selenium - 并行执行失败。它在一个会话和另一个会话上成功执行测试,没有执行任何操作
- spring - X-application-context-header 未传递给 openshift/liberty 中的 httpHeaders Map
- python - 与用于逻辑回归的 Scikit-Learn 相比,Tensorflow 的性能要差得多
- postgresql - postgresql 函数根据 IF ELSEIF 条件更新每一行
- json - JSON 格式不正确
- css - 当其容器/父元素悬停时将css样式应用于元素
- dart - 通过滑动更改路线