我想在多索引数据帧上使用fillna,并且仅在其保留在同一索引中时填充特定列。下一个索引可能以n / a开头,因此我无法在该列上调用fillna。群组的大小正在变化,因此我无法通过数字限制功能。
如果df是:
1 Val
fooTitle barTitle
foo foo1 valueA
foo2 NaN
foo3 NaN
bar bar1 NaN
bar2 NaN
bar3 NaN
bar4 NaN
baz baz1 valueB
baz2 NaN
baz3 NaN
我希望它是:
1 Val
fooTitle barTitle
foo foo1 valueA
foo2 valueA
foo3 valueA
bar bar1 NaN
bar2 NaN
bar3 NaN
bar4 NaN
baz baz1 valueB
baz2 valueB
baz3 valueB
我很讨厌使用groupby(),但是在指南中他们特别指出组对象是不可变的。 (他们特别提到fillna:
不对组块执行就地操作。组块
应该被视为不可变的,并且对组块的更改可能
产生意想不到的结果。例如,当使用fillna时,就地
必须为False(grouped.transform(lambda x:x.fillna(inplace = False)))
)
如何在每个组上使用该功能?
最佳答案
如果您要填充的值始终是问题中建议的第一个值,则可以使用以下方法。
df = df.groupby(level= "fooTitle").ffill()
关于python - 如何在分组数据框上使用fillna?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55620039/