我的数据类似于以下简化示例:
Col1 Col2 Col3
a A 10.1
b A NaN
d B NaN
e B 12.3
f B NaN
g C 14.1
h C NaN
i C NaN
…数千行我需要基于Col2中的值来填充,并使用类似于填充方法的方法.我正在寻找的结果是这样的:
Col1 Col2 Col3
a A 10.1
b A 10.1
d B NaN
e B 12.3
f B 12.3
g C 14.1
h C 14.1
i C 14.1
但是,此方法将忽略Col2中的值.有任何想法吗?
解决方法:
如果我理解正确,则可以在“ Col2”上分组,然后在“ Col3”上调用transform并调用ffill:
In [35]:
df['Col3'] = df.groupby('Col2')['Col3'].transform(lambda x: x.ffill())
df
Out[35]:
Col1 Col2 Col3
0 a A 10.1
1 b A 10.1
2 d B NaN
3 e B 12.3
4 f B 12.3
5 g C 14.1
6 h C 14.1
7 i C 14.1