Некоторые из моих данных выглядят следующим образом:
date, name, value1, value2, value3, value4
1/1/2001,ABC,1,1,,
1/1/2001,ABC,,,2,
1/1/2001,ABC,,,,35
Я пытаюсь добраться до точки, где я могу запустить
data.set_index(['date', 'name'])
Но с данными as-is есть, конечно, дубликаты (как показано выше), поэтому я не могу этого сделать (и мне не нужен индекс с дубликатами, и я не могу просто drop_duplicates (), так как это потеряло бы данные).
Я хотел бы иметь возможность принудительно создавать строки, которые имеют одинаковые значения [даты, имени] в одну строку, если они могут быть успешно конвергированы на основе определенных значений, которые являются NaN (аналогично поведению comb_first()). Например, приведенное выше значение будет
date, name, value1, value2, value3, value4
1/1/2001,ABC,1,1,2,35
Если два значения отличаются друг от друга, а одно не NaN, две строки не должны конвергироваться (это, вероятно, будет ошибкой, о которой мне нужно будет следить).
(Чтобы расширить приведенный выше пример, фактически может быть произвольное количество строк - задано произвольное количество столбцов, которое должно быть сведено к одной отдельной строке.)
Это похоже на проблему, которая должна быть очень разрешимой с помощью pandas, но мне сложно разобраться в элегантном решении.