我需要使用已填充 ColA 组的值来填充 Null 值
原df:
ColA ColB ColC
cat 20 blue
cat 28 yellow
fish 32 red
fish NaN NaN
fish NaN NaN
dog 3 black
dog 311 tan
dog 755 white
frog NaN NaN
frog NaN NaN
frog 400 green
frog NaN NaN
保留每列中已填充单元格的行,但在存在空值的地方,我想用 ColA 组已填充的关联值填充这些单元格,例如:
所需的df:
ColA ColB ColC
cat 20 blue
cat 28 yellow
fish 32 red
fish 32 red
fish 32 red
dog 3 black
dog 311 tan
dog 755 white
frog 400 green
frog 400 green
frog 400 green
frog 400 green
任何想法表示赞赏。谢谢!
尝试使用
goupby
进行前向填充 (ffill
) 和后向填充 (bfill
)
df[['ColB', 'ColC']] = df.groupby('ColA').ffill().bfill()
ColA ColB ColC
0 cat 20.0 blue
1 cat 20.0 yellow
2 fish 32.0 red
3 fish 32.0 red
4 fish 32.0 red
5 dog 3.0 black
6 dog 3.0 tan
7 dog 3.0 white
8 frog 400.0 green
9 frog 400.0 green
10 frog 400.0 green
11 frog 400.0 green
如果某列中缺少太多值,则可以删除该列。否则,我们可以用均值、中位数和众数来估算缺失值。
pandas 中可用于处理缺失值的一些函数是 fillna、dropna、bfill 和 interpolate。
--年龄替代的意思.. 更新后的_df = df update_df['年龄']=updated_df['年龄'].fillna(updated_df['年龄'].mean()) update_df.info()