簡體   English   中英

Python,避免嵌套 for 循環

[英]Python, avoid nested for loops

我有一個包含 ('ABC' 或 'BCD') 等值的數據框和另一個格式為 [{ID: 'ABC', StList: ['ABC','BCD','DEF']} 的字典列表, {ID: 'DEF', StList: ['ABC','CCC','DEF']}....]

df = ['ABC' or 'BCD',.....]

dictList = [{ID: 'ABC', StList: ['ABC','BCD','DEF']},{ID: 'DEF', StList: 'ABC','CCC','DEF']}....]

我必須遍歷數據框,檢查列中的每個值是否存在於 StList 中 - 如果為真則返回 ID,將 ID 附加到另一個列表。

為此,我使用了有效但並不理想的嵌套循環 - 性能方面。 有沒有另一種方法來解決這個問題?

編輯:替代我試過

Df1 = ['ABC', 'ABC' or 'BCD', 'ZYB', ('ABC' and 'CD') or 'NMM']

DF2 = [{ID:Testing, STList: ['ABC','BCD','ZYY','NMM'],{ID:Testing2, STList: ['ABC'].......}]

對於 DF1 的第一行:返回結果應該類似於 final_result = ['Testing','Testing2'] 然后這將在 DF1 中針對第一行進行更新。

有沒有辦法使用數據框功能來實現這一點——它在一些需要評估的行中也有布爾邏輯?

這個問題的答案是:NO

沒有可能的方法來防止嵌套循環來提高性能。 為了掃描字典/數組中的每個數據,它需要迭代層才能到達索引的峰值節點。 您可以使用選擇器(列和行)/索引手動查找特定元素,但它不適用於您的場景。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM