简体   繁体   English

删除循环以提高 python 中的效率

[英]deleting loops to increase efficiency in python

How do I make this more efficient?我如何使这更有效? I feel like I should be able to do this without looping through the entire dataframe.我觉得我应该能够做到这一点,而无需遍历整个 dataframe。 Basically I have to split the column CollectType , into multiple columns depending on the the value in column SSampleCode .基本上我必须根据列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]

This can be done using masks (vectorial approach):这可以使用掩码(矢量方法)来完成:

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

will be将会

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

This will give you a good perf improvement.这会给你一个很好的性能改进。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM