熊猫/numpy-每一列填充缺失值



下午好,我有一个dataframe

dataframe = df

NPI       Fa Name
1100      
1100      Johnson
1100  
5555 
2222      Meghan
2222    
4444
4444

我的目标是根据相应的NPI填写缺少的FA名称

    NPI       Fa Name
    1100      Johnson
    1100      Johnson
    1100      Johnson
    5555 
    2222      Meghan
    2222      Meghan
    4444
    4444

我知道这可能是一项简单的任务,但是编码很明智,我很难弄清楚它。请帮忙!

如果订单很重要,则使用 GroupBy.apply,向前和背面填充缺失值:

#if necessary
df['Fa Name'] = df['Fa Name'].replace('', np.nan)
df['Fa Name'] = df.groupby('NPI')['Fa Name'].apply(lambda x: x.ffill().bfill())
print (df)
    NPI  Fa Name
0  1100  Johnson
1  1100  Johnson
2  1100  Johnson
3  5555      NaN
4  2222   Meghan
5  2222   Meghan
6  4444      NaN
7  4444      NaN

如果不是,则按两列进行拳头排序,然后使用GroupBy.ffill

df = df.sort_values(['NPI','Fa Name'])
df['Fa Name'] = df.groupby('NPI')['Fa Name'].ffill()
print (df)
    NPI  Fa Name
1  1100  Johnson
0  1100  Johnson
2  1100  Johnson
4  2222   Meghan
5  2222   Meghan
6  4444      NaN
7  4444      NaN
3  5555      NaN

最新更新