我有一个这样的数据框,
cat1 cat2 cat3 day
0 10 25 12 Monday
1 11 22 14 Tuesday
2 12 30 15 Wednesday
3 10 36 12 Thursday
4 15 38 14 Friday
5 NaN 42 13 Monday
6 11 32 10 Tuesday
7 15 30 12 Wednesday
8 13 28 09 Thursday
9 10 29 10 Friday
10 12 30 16 Monday
现在,我想将NaN
的值替换为cat1
列中的Monday
过滤的day
列的平均值。我的输出是,
cat1 cat2 cat3 day
0 10 25 12 Monday
1 11 22 14 Tuesday
2 12 30 15 Wednesday
3 10 36 12 Thursday
4 15 38 14 Friday
5 11 42 13 Monday
6 11 32 10 Tuesday
7 15 30 12 Wednesday
8 13 28 09 Thursday
9 10 29 10 Friday
10 12 30 16 Monday
我正在考虑通过day
列的Monday
值过滤数据框,用NaN
函数替换.mean()
,然后将其附加回数据框。例如,
monday_df = df[df['day'] == 'Monday']
mean_val = monday_df['cat1'].mean()
monday_df['cat1']= Monday_df['cat1'].fillna(mean_val)
此后,将其附加回原始df
。但这似乎需要很多编码,是否有一种pandastic
方法(可能是一种班轮)来做到这一点,以便获得所需的输出?