Пожалуйста, найдите данные ниже, где название индекса повторяется от 3 до 5 раз, поскольку ежемесячный отчет неправильно консолидировался за 3 месяца, прежде чем был передан мне.
Name Score Rating
Peralta 0 40
Peralta 20 0
Peralta 0 0
Amy 0 40
Amy 20 40
Amy -20 40
Terry 0 0
Terry -20 40
Terry 0 -40
Gina 20 0
Gina 0 0
Gina -20 40
Я до сих пор работал с только вытягивание имени столбца, как показано в коде в конце. Но я не могу объединить «Имя столбца» и «Значение ячейки» .
Мне нужно суммировать данные в следующем формате: ( в результатах могут быть табуляторы или запятые, в зависимости от вашего удобства.)
### Final Result
# IndexName [col_name, cell_value] [sum of positive numbers, result] [sum of negative numbers, result]
Peralta [Rating, 40] [Score, 20] [Sum_Total_of_positive_numbers, 60]
Amy [Rating, 40] [Score, 20] [Rating, 40] [Score, -20] [Rating, 40] [Sum_Total_of_positive_numbers, 140] [Sum_Total_of_negative_numbers, -20]
Terry [Score, -20] [Rating, 40] [Rating, -40] [Sum_Total_of_positive_numbers, 40] [Sum_Total_of_negative_numbers, -60]
Gina [Score, 20] [Score, -20] [Rating, 40] [Sum_Total_of_positive_numbers, 60] [Sum_Total_of_negative_numbers, -20]
Все стандартные pandas функции для суммирования данных не помогли, и / или другие библиотеки, доступные для вывода сводки в Приведенный выше формат не существует.
Следующий код действительно помог уменьшить имя столбца, но тогда значение ячейки, относящееся к этому столбцу + строке, не входит ..
for k, v in dff_dict.items(): # k: name of index, v: is a df
check = v.columns[(v == 20).any()]
if len(check) > 0:
print((k, check.to_list()), file=open("output.txt", "a"))
Можно ли каким-то образом достичь «Окончательного результата» , как показано во 2-й таблице, пожалуйста? (конечный результат не обязательно в каком-либо конкретном формате, например, в фрейме данных или таблице) Спасибо ..
Примечание:
Исходные данные могут содержать более 20 столбцов и сотни строк , но я упростил данные, поэтому, пожалуйста, не ограничивайтесь только несколькими строками или столбцами. '
Также последние 2 значения в квадратных скобках показывают общую сумму всех положительных и отрицательных числа в строке, предварительно опустив значения на место. Положительные и отрицательные числа отдельно.
Здесь есть полезная статья (Ближайший возможный ответ) , но тогда мне нужно [имя_столбца, значение], в отличие от только [ строка: значение]