[英]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.