J'ai quelques données d'une expérience, et dans chaque essai il y a quelques valeurs simples, entourées de NA
« s, que je veux remplir à l'ensemble du procès:pandas géants: Remplissage des valeurs manquantes dans un groupe
df = pd.DataFrame({'trial': [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3],
'cs_name': [np.nan, 'A1', np.nan, np.nan, np.nan, np.nan, 'B2',
np.nan, 'A1', np.nan, np.nan, np.nan]})
Out[177]:
cs_name trial
0 NaN 1
1 A1 1
2 NaN 1
3 NaN 1
4 NaN 2
5 NaN 2
6 B2 2
7 NaN 2
8 A1 3
9 NaN 3
10 NaN 3
11 NaN 3
Je suis en mesure de remplir ces valeurs dans l'ensemble de l'essai en utilisant à la fois bfill()
et ffill()
, mais je me demande s'il existe une meilleure façon d'y parvenir.
df['cs_name'] = df.groupby('trial')['cs_name'].ffill()
df['cs_name'] = df.groupby('trial')['cs_name'].bfill()
Sortie prévue:
cs_name trial
0 A1 1
1 A1 1
2 A1 1
3 A1 1
4 B2 2
5 B2 2
6 B2 2
7 B2 2
8 A1 3
9 A1 3
10 A1 3
11 A1 3