问答交流

新版如何去极值?

由jayjaypp创建,最终由jayjaypp 被浏览 15 用户

若想 过滤掉 超过百分比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)

\

评论
  • 用循环的方式剔除每一个字段的极值, 这是可以做到的
  • https://bigquant.com/codesharev3/f8dcf7a5-c66f-4d75-a98a-8a3801aacb49
  • undefined
  • 希望可以整合成可视化模块
{link}