NA
私は実験からいくつかのデータを持っており、各試行内には、試行全体に入力したい 's で囲まれたいくつかの単一の値があります。
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
bfill()
と の両方を使用して、トライアル全体でこれらの値を埋めることができますがffill()
、これを達成するためのより良い方法があるかどうか疑問に思っています。
df['cs_name'] = df.groupby('trial')['cs_name'].ffill()
df['cs_name'] = df.groupby('trial')['cs_name'].bfill()
期待される出力:
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