У меня есть вопрос эффективности.По сути, у меня есть датафрейм, заполненный списками.Каждый список содержит значение и строку, описывающую это значение (я предполагал, что формат списка будет самым простым способом сортировки пар).Мне нужно отдельно изменить порядок значений в каждой строке с наибольшим значением слева и самым низким значением справа.Я нашел решение для этого, но, учитывая, что я новичок в программировании, я хотел бы знать, если вы считаете, что есть более быстрый способ выполнить эту операцию без итерации по индексам.Пожалуйста, не стесняйтесь предоставлять любые ваши отзывы.Единственное требование, которое у меня есть, это то, что окончательное решение - это фрейм данных, в котором за значением сразу следует его строковый дескриптор (строковый дескриптор может находиться в собственном смежном столбце, не обязательно в списке).
Начиная DF:
import pandas as pd
import numpy as np
master_stop = pd.DataFrame([[[56,'Support'],[58, 'MA']],
[[24.4, 'Support'],[23.3,'MA'],[25,'MA']]],
['Symbol_1','Symbol_2']).fillna(np.NaN)
master_stop
Out[2]:
0 1 2
Symbol_1 [56, Support] [58, MA] NaN
Symbol_2 [24.4, Support] [23.3, MA] [25, MA]
Метод сортировки, который я хочу улучшить:
def sort_df():
for index in master_stop.index:
master_stop.loc[index] = master_stop.loc[index].sort_values(ascending=False).values
Сортировка DF:
sort_df()
master_stop
Out[3]:
0 1 2
Symbol_1 [58, MA] [56, Support] NaN
Symbol_2 [25, MA] [24.4, Support] [23.3, MA]