Je suis intéressé par le remplissage en avant de valeurs uniques et multiples dans une colonne de pandas. Avec le dataframe suivant :
import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
df
0 1 2
0 1 2 3
1 4 NaN NaN
2 NaN NaN 9
Le forward fill produira :
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
df.fillna(method='ffill')
df
0 1 2
0 1 2 3
1 4 2 3
2 4 2 9
Cependant, j'ai besoin d'une méthode similaire à ffill qui fera cela, ou copiera alternativement toutes les valeurs ci-dessus si les valeurs ci-dessus se suivent :
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, 5, 9], [None,None,None])
df
0 1 2
0 1 2 3
1 4 NaN NaN
2 NaN 5 9
3 NaN NaN NaN
Résultant en :
df
0 1 2
0 1 2 3
1 4 2 3
2 1 5 9
3 4 5 9
Modification majeure : Dans mes données les valeurs seront toujours suivies de NaNs dans un multiple inconnu de la longueur des valeurs. Prenons df[0], par exemple 1,4 se répétera aussi longtemps qu'il y a de NaNs. La seule règle est qu'elles seront un multiple de la longueur des valeurs (2)