У меня есть датафрейм, имеющий около 100 000 столбцов.Первый столбец кадра данных - это «метки».Данные каждого столбца делятся на две группы.Один - метка == 1, а другой - метка == 0.Как и выше: введите описание изображения здесь
Моя цель - применить t-критерий к каждому столбцу в соответствии с различными «метками».Ниже приведены мои коды:
import pandas as pd
from scipy import stats as ss
def t_test(filename):
df = pd.read_csv(filename)
column_list = [x for x in df.columns if x != 'labels']
t_test_results = {}
for column in column_list:
non_essential = df.where('labels'==1).dropna()[column]
essential = df.where('labels'==0).dropna()[column]
t_test_results[column] = ss.ttest_rel(non_essential, essential)
result_df = pd.DataFrame.from_dict(t_test_results, orient='Index')
result_df.columns = ['statistic', 'pvalue']
return result_df
if __name__ == '__main__':
result = t_test('encoding_test_data.csv')
with open('t_test_result.txt', 'w') as f:
f.write(str(result))
'encoding_test_data.csv' - это мой тестовый файл.И я получил информацию об ошибке:
Traceback (most recent call last):
File "E:/master_subject/t_test.py", line 22, in <module>
result = t_test('encoding_test_data.csv')
File "E:/master_subject/t_test.py", line 14, in t_test
non_essential = df.where('labels'==1).dropna()[column]
File "D:\Python37\lib\site-packages\pandas\core\generic.py", line 7772, in where
errors=errors, try_cast=try_cast)
File "D:\Python37\lib\site-packages\pandas\core\generic.py", line 7516, in _where
raise ValueError('Array conditional must be same shape as '
ValueError: Array conditional must be same shape as self
Как я могу получить свою цель?