问题描述
我有一个数据集,我想在 python 中填充列和行,如下所示:
数据集:
| P | Q |
|678|1420|
|678|---|
|609|---|
|583|1260|
|---|1260|
|---|1261|
|---|1262|
|584|1263|
|---|403|
|---|---|
预期结果:
| P | Q |
|678|1420|
|678|1420|
|609|---|
|583|1260|
|583|1260|
|583|1261|
|583|1262|
|584|1263|
|584|403|
|584|403|
我已经使用 fillna() 填充了 P 列,但不能对 Q 列做同样的事情,因为需要为键对填充值。
有人可以帮忙吗。
解决方法
对于您展示的样本,请尝试以下操作。
df['P'] = df['P'].ffill()
df['Q'] = df.groupby('P')['Q'].ffill()
输出如下:
P Q
0 678.0 1420.0
1 678.0 1420.0
2 609.0
3 583.0 1260.0
4 583.0 1260.0
5 583.0 1261.0
6 583.0 1262.0
7 584.0 1263.0
8 584.0 403.0
9 584.0 403.0