Я пытаюсь создать описательную статистику для DataFrame с помощью GroupBy и поместить эти значения обратно в DataFrame.
Мой DataFrame содержит неуникальный текущий номер, который идентифицирует человека (анонимно), и некоторые значения, связанные с каждым человеком.
Например:
RunNr Value
1 126
1 158
1 18
2 65
3 31
3 4
Используя GroupBy, я могу рассчитать описательную статистику для каждого человека (номер бега), например, стандартное отклонение. Я хочу добавить их обратно в DataFrame для дальнейшей обработки (например, создания отчета в Word).
Результат должен выглядеть следующим образом:
RunNr Value Std
1 126 59,9
1 158 59,9
1 18 59,9
2 65 Nan
3 31 13,5
3 4 13,5
Лучшее решение, которое я нашел, - это рассчитать стандартное отклонение (и другие статистические данные), поместить их в словарь, в котором порядковый номер - это ключ, а значение - стандартное отклонение.
Теперь у меня есть словарь, в котором порядковый номер в словаре является уникальным ключом, а его нет в DataFrame. Мой следующий шаг - перебрать словарь и использовать .loc (), чтобы вставить соответствующее значение в правильную строку:
for key, value in self.dict_of_std:
self.internal_main_df.loc[self.internal_main_df.Fnr == key] = value
Я получаю эту ошибку:
TypeError: cannot unpack non-iterable float object
Предложения по улучшению моего кода, или мой общий метод приветствуется.