我有这样一个Pandas数据框架:
df =
a b
a1 b1
a1 b2
a1 b1
a1 Nan
a2 b1
a2 b2
a2 b2
a2 Nan
a2 b2
a3 Nan
对于a
的每一个值,b
可以有多个b
的值与之对应,我想用b
值按a
的对应值分组的方式来填充b
的所有nan
值。
生成的 Dataframe 应如下所示:
df =
a b
a1 b1
a1 b2
a1 b1
a1 ***b1***
a2 b1
a2 b2
a2 b2
a2 **b2**
a2 b2
a3 b2
b1
上面是a1
对应的b
的模式,同理b2
是a2
对应的模式,最后a3没有数据,用全局模式b2
填充。
对于b列的每一个nan值,我想用b列的值的众数来填充它,但是,对于a的特定值,不管众数是什么。
编辑:
如果存在b
上没有数据的组a
,则以全局模式填充。
2条答案
按热度按时间jdg4fx2g1#
试试看:
lsmd5eda2#
You are getting the IndexError: index out of bounds because last a column value a3
没有对应的B列值,因此没有组可填充。Solution would be have try catch block while fillna and then apply ffill and bfill
。以下是代码解决方案。