В качестве ввода у меня есть CSV-файл со временем и кучей чисел за каждый раз.Как группа по сумме и среднему столбцу в python?
Time,F1,F2,F3
8:11,5,2,4
9:25,9,8,2
9:39,7,3,2
9:53,6,5,1
10:07,4,6,7
10:21,7,3,1
10:35,5,6,7
11:49,1,2,1
12:03,3,3,1
Я хотел бы, чтобы выводить таблицу для каждого часа, сгруппированных по столбцу Avg и Сумма:
Time,SUM F1,SUM F2,SUM F3,AVG F1,AVG F2,AVG F3
8:00,5,2,4,5,2,4
9:00,22,16,5,7.3,5.3,1.6
10:00,16,15,15,5.3,5,5
11:00,1,2,1,1,2,1
12:00,3,3,1,3,3,1
До сих пор я смотрел на это делать со словарем, где час является ключ и значение представляет собой список счетчиков и сумм, а затем деление суммы на подсчет, чтобы получить среднее значение. Я уверен, что должен быть более чистый способ сделать это. Возможно, некоторые библиотеки могут работать с этим. Какие-либо предложения?
Ваш подход прекрасен. Это не так много кода. Цикл, чтобы добавить вещи в три словаря, каждый из которых использует setdefault (час, []). Append (F1) и setdefault (час, []). Append (F2) и setdefault (час, []). Append (F3). Затем для каждого бита вы повторяете каждый час и вызываете «sum» над списком и делите по счету (список), заботясь о том, что происходит, когда ваш список пуст. –
'Pandas' - хорошая библиотека для обработки данных такого рода: http://pandas.pydata.org/ – CoMartel