[英]How to throw out outliers in a pandas dataframe without iterating over rows?
我在X和Y列中有一个带有数值的数据框数据。 我试图在 python 代码中复制的过程如下:
到目前为止,我有类似的东西
import pandas as pd
import numpy as np
from scipy.optimize import curve_fit
data = pd.read_excel("filename.xlsm")
def func(s, a, b):
return a * np.log(s) + b
popt, pcov = curve_fit(func, data['X'], data['Y'])
a, b = popt
这个答案说应该尽可能避免迭代行,那么执行给定过程的正确方法是什么? 谁能告诉我正确的代码?
您将公式直接转换为 Python,然后保留满足条件的行:
mask = np.abs(a * np.log(data['X']) + b - data['Y']) < d
new_data = data[mask]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.