如何通过查看一列(或更多)中具有相同值的另一行来填充缺失值?

数据挖掘 熊猫 缺失数据
2022-03-09 15:20:11

假设我们有一个 6*4 的数据框,其中第三列和第四列包含缺失值

1 2   3   L1
4 5   6   L2
7 8   9   L3
4 8   NaN NaN
2 3   4   5
7 9   NaN NaN

我想通过查看第一列具有相同值的另一行来填充缺失值。所以,最后,我应该有:

1 2   3   L1
4 5   6   L2
7 8   9   L3
4 8   6   L2    <- Taken from 4 5 6 L2 row
2 3   4   L4
7 9   9   L3    <- Taken from 7 8 9 L3 row

我们怎样才能以最快的方式用 Pandas 做到这一点?

1个回答

排序并进行了前向填充 NaN

import pandas as pd, numpy as np
data = np.array([[1,2,3,'L1'],[4,5,6,'L2'],[7,8,9,'L3'],[4,8,np.nan,np.nan],[2,3,4,5],[7,9,np.nan,np.nan]],dtype='object')
df = pd.DataFrame(data,columns=['A','B','C','D'])

df.sort_values(by='A',inplace=True)
df.fillna(method='ffill')