Я понимаю, как, путая название звучит так позвольте мне объяснить мою проблему. У меня есть DataFrame, разделенный идентификатором столбца. Идентификатор столбца представляет кластер. Каждый кластерный DataFrame имеет одинаковые метки столбцов.
Я пытаюсь создать функцию, которая позволяет мне отправлять в каждый кластерный DataFrame функцию, а затем возвращает вычисленное стандартное отклонение этого столбца (для 14 столбцов). Изображение cluster_0 ниже:
Кластер 0 DataFrame
Конечно, я мог бы go тщательно и перечислить каждый столбец для каждого кластера, но это отнимает много времени и не очень эффективный. Если бы вы могли проверить мой код и сообщить мне, где и как он вышел из строя, я был бы очень признателен.
Чего я пытаюсь достичь : стандартное отклонение каждого (A -> N) столбца для каждого кадра данных (кластера)
Мой код:
cluster_joint_col_name = list(["X", "Y", "Cluster ID", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N"])
joint_table_df.columns = cluster_joint_col_name
cluster_0 = joint_table_df[joint_table_df['Cluster ID'] == 0]
cluster_1 = joint_table_df[joint_table_df['Cluster ID'] == 1]
cluster_2 = joint_table_df[joint_table_df['Cluster ID'] == 2]
def standardDeviation(self):
self = self[['A']].stack().std()
self = self[['B']].stack().std()
self = self[['C']].stack().std()
self = self[['D']].stack().std()
self = self[['E']].stack().std()
self = self[['F']].stack().std()
self = self[['G']].stack().std()
self = self[['H']].stack().std()
self = self[['I']].stack().std()
self = self[['J']].stack().std()
self = self[['K']].stack().std()
self = self[['L']].stack().std()
self = self[['M']].stack().std()
self = self[['N']].stack().std()
return self
cluster_j_0 = pd.DataFrame(standardDeviation(cluster_0))
Моя ошибка:
Трассировка (последний последний вызов):
строка 345,
cluster_j_0 = pd.DataFrame(standardDeviation(cluster_0))
строка 328, стандартное отклонение
self = self[['B']].stack().std()
IndexError: недопустимый индекс для скалярной переменной.