Considere o seguinte índice múltiplo pd.DataFrame
que possui vários valores ausentes.
import numpy as np
import pandas as pd
# Create multi-index
index = pd.MultiIndex.from_tuples(
[
("A", "X", "I"),
("A", "X", "I"),
("A", "Y", "I"),
("A", "Y", "II"),
("A", "Y", "I"),
],
names=["level_1", "level_2", "level_3"],
)
# Create dataframe
data = [[1, np.nan], [np.nan, 1], [np.nan, 1], [np.nan, 1], [1, np.nan]]
df = pd.DataFrame(data, index=index, columns=["column1", "column2"])
print(df)
column1 column2
level_1 level_2 level_3
A X I 1.0 NaN
I NaN 1.0
Y I NaN 1.0
II NaN 1.0
I 1.0 NaN
Como posso espremer as linhas o máximo possível? Estou procurando o seguinte resultado:
column1 column2
level_1 level_2 level_3
A X I 1.0 1.0
Y I 1.0 1.0
II NaN 1.0
Se possível valores agregados por índices, por exemplo
mean
:Se você quiser evitar a agregação:
Outra maneira: