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