У меня есть этот кадр данных панд:
from numpy import nan
import pandas as pd
data = {'A': {0: 1, 1: 2, 2: 1, 3: 2}, 'B': {0: 0.1, 1: 0.5, 2: 0.1, 3: 0.5},
'C1': {0: 9.0, 1: 9.0, 2: nan, 3: nan}, 'C2': {0: 9.0, 1: 9.0, 2: nan, 3: nan}, 'D1': {0: nan, 1: nan, 2: 6.0, 3: 6.0}, 'D2': {0: nan, 1: nan, 2: 6.0, 3: 6.0}}
data = pd.DataFrame(data)
Результат:
A B C1 C2 D1 D2
0 1 0.1 9.0 9.0 NaN NaN
1 2 0.5 9.0 9.0 NaN NaN
2 1 0.1 NaN NaN 6.0 6.0
3 2 0.5 NaN NaN 6.0 6.0
Теперь, очевидно, этот фрейм данных можно консолидировать, поскольку он излишне заблокирован. Ожидаемый результат:
A B C1 C2 D1 D2
0 1 0.1 9.0 9.0 6.0 6.0
1 2 0.5 9.0 9.0 6.0 6.0
В общем, я говорю о фрейме данных, в котором большинство столбцов заполнены или отсутствуют случайным образом, но в фрейме данных существует этот тип заблокированной неслучайной отсутствующей структуры, которую можно безопасно объединить. Проблема в том, что мы не знаем заранее, какие столбцы должны быть агрегированы. Как с этим бороться?