簡體   English   中英

刪除循環以提高 python 中的效率

[英]deleting loops to increase efficiency in python

我如何使這更有效? 我覺得我應該能夠做到這一點,而無需遍歷整個 dataframe。 基本上我必須根據列SSampleCode中的值將列CollectType拆分為多個列。

for i in range(0,len(df)):
  if df.SSampleCode[i]=='Rock':
     df.R_SampleType[i]=df.CollectType[i]
  elif df.SSampleCode[i]=='Soil':
     df.S_SampleType[i]=df.CollectType[i]
  elif df.SSampleCode[i]=='Pan Con':
     df.PC_SampleType[i]=df.CollectType[i]
  elif df.SSampleCode[i]=='Silt':
     df.SS_SampleType[i]=df.CollectType[i]

這可以使用掩碼(矢量方法)來完成:

for i in range(0,len(df)):
  if df.SSampleCode[i]=='Rock':
     df.R_SampleType[i]=df.CollectType[i]

將會

mask = df.SSampleCode=='Rock'
df.R_SampleType[mask] = df.CollectType[mask]

這會給你一個很好的性能改進。

暫無
暫無

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

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