Описание проблемы
Вводное замечание: код приведен ниже
Допустим, у нас есть кадр данных pandas, состоящий из 3 столбцови 2 ряда. Я хотел бы добавить 4-й столбец с именем Max_LF, который будет состоять из массива. Значение ячейки можно получить, посмотрев на столбец Max_WD. Для первой строки это будет 0,35, которое будет сравниваться со значениями в столбце «WD», где 0,35 можно найти в третьей позиции. Следовательно, третье значение столбца «LF» должно быть записано в столбец «Max_LF». Если значение «Max_WD» встречается несколько раз в «WD», то все соответствующие элементы «LF» должны быть записаны в «Max_LF».
Неудачная попытка
До сих пор у меня были различные попытки сначала получить индекс элемента в «Max_WD» в «WD». После потенциального получения индекса идея заключалась в том, чтобы затем получить элементы «LF» через их индекс: df4['temp_indices'] = [i for i, x in enumerate(df4['WD']) if x == df4['Max_WD']]
Однако произошла ошибка ValueError: повысить ValueError («Длина должна совпадать для сравнения») ValueError: Lengthsдолжен совпадать для сравнения
Вот так выглядит пример даты
df = pd.DataFrame(data={'LF': [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] , 'WD': [[0.28, 0.34, 0.35, 0.18], [0.42, 0.45, 0.45, 0.18], [0.31, 0.21, 0.41, 0.41]], 'Max_WD': [0.35, 0.45, 0.41]})
Ожидаемый результат должен выглядеть как
df=pd.DataFrame(data={'LF': [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] , 'WD': [[0.28, 0.34, 0.35, 0.18], [0.42, 0.45, 0.45, 0.18], [0.31, 0.21, 0.41, 0.41]], 'Max_WD': [0.35, 0.45, 0.41], 'Max_LF': [[3] ,[2,3], [3,4]]})