【发布时间】:2021-09-15 22:52:15
【问题描述】:
我正在尝试使用具有相似列值的行来估算/填充值。
例如,我有这个数据框:
one | two | three
1 1 10
1 1 nan
1 1 nan
1 2 nan
1 2 20
1 2 nan
1 3 nan
1 3 nan
我想使用相似的列 one 和 two 的键,如果列 three 不完全是 nan,则从具有列“3”中的值的类似键的行中估算现有值。
这是我想要的结果:
one | two | three
1 1 10
1 1 10
1 1 10
1 2 20
1 2 20
1 2 20
1 3 nan
1 3 nan
可以看到键 1 和 3 不包含任何值,因为现有值不存在。
我尝试过使用groupby+fillna():
df['three'] = df.groupby(['one','two'])['three'].fillna()
这给了我一个错误。
我尝试了前向填充,这给了我相当奇怪的结果,它改为前向填充第 2 列。我正在使用此代码进行前向填充。
df['three'] = df.groupby(['one','two'], sort=False)['three'].ffill()
【问题讨论】: