我有一个包含多列的数据框,其想法是仅过滤其值来自正态分布的列。
import pandas as pd
import numpy as np
from scipy import stats
N = 100
df = pd.DataFrame({'normal1': np.random.randn(N),
'unif': np.random.random(N),
'normal2': np.random.randn(N),
'normal3': np.random.randn(N),
'unif2': np.random.random(N)})
在此示例中,仅选择了normal1、normal2、normal3列。选择标准可以通过 shapiro 检验:
stats.shapiro
,其中选择 p 值大于 0.05 的列。