У меня есть фрейм данных, как показано на рисунке, я хочу взять среднее значение по столбцу «пробный». Для каждого предмета, условия и образца (когда все эти три столбца имеют значение один), возьмите среднее значение данных по пробному столбцу (100 строк).
то, что я сделал в пандах, выглядит следующим образом
sub_erp_pd= pd.DataFrame()
for j in range(1,4):
sub_c=subp[subp['condition']==j]
for i in range(1,3073):
sub_erp_pd=sub_erp_pd.append(sub_c[sub_c['sample']==i].mean(),ignore_index=True)
Но это займет много времени ..
Так что я думаю использовать Dask вместо Pandas.
Но в сумме у меня возникла проблема при создании пустого фрейма данных. Как будто мы создаем пустой фрейм данных в пандах и добавляем к нему данные.
изображение фрейма данных
как подсказал @edesz, я внес изменения в свой подход
EDIT
%%time
sub_erp=pd.DataFrame()
for subno in progressbar.progressbar(range(1,82)):
try:
sub=pd.read_csv('../input/data/{}.csv'.format(subno,subno),header=None)
except:
sub=pd.read_csv('../input/data/{}.csv'.format(subno,subno),header=None)
sub_erp=sub_erp.append(sub.groupby(['condition','sample'], as_index=False).mean())
Чтение файла с использованием панд занимает 13,6 секунды, а при чтении файла с использованием dask - 61,3 мс. Но в сумме у меня проблемы с добавлением.