Если вы хотите вычислить построчно normaltest
, вам не следует flatten
ваши данные в x
и использовать axis=1
, например
df = pd.DataFrame(np.random.random(105).reshape(5,21)) # to generate data
# calculate normaltest row-wise without the first column like you
df['stat'] ,df['p'] = stats.normaltest(df.iloc[:,1:],axis=1)
Тогда df
содержит два столбца'stat' и 'p' со значениями, которые вы ищете IIUC.
Примечание: чтобы иметь возможность выполнить normaltest
, вам нужно как минимум 8 значений (в соответствии с тем, что я испытал), поэтому вам нужно как минимум 8 столбцов в df.iloc[:,1:]
, иначе это вызовет ошибку.И даже, было бы лучше иметь более 20 значений в каждой строке.