【平台使用】新版如何去极值?
由jayjaypp创建,最终由small_q 被浏览 17 用户
若想 过滤掉 超过百分比95% & 低于百分比5% 的数据,只保留中间90%的数据, 以下代码可实现吗?
新版没报错,但代码运行不出来,是资源不够吗?
Python 代码入口函数,input_1/2/3 对应三个输入端,data_1/2/3 对应三个输出端
def bigquant_run(input_1):
import pandas as pd
df = input_1.read_df()
# 指定要保留的列
non_numeric_columns = ['date', 'instrument','label']
# 计算数值列的分位数
numeric_cols = df.select_dtypes(include=['number']).columns
quantiles_5 = df[numeric_cols].quantile(0.05)
quantiles_95 = df[numeric_cols].quantile(0.95)
# 使用向量化操作来创建布尔索引
mask = (df[numeric_cols] >= quantiles_5.values) & (df[numeric_cols] <= quantiles_95.values).all(axis=1)
# 过滤DataFrame以仅包含有效行
df_filtered = df[mask]
data_1 = DataSource.write_df(df_filtered)
return Outputs(data_1=data_1, data_2=None, data_3=None)
\