按另一列填充缺少的值

2024-05-14 00:28:24 发布

您现在位置:Python中文网/ 问答频道 /正文

下午好,我有一个数据帧

数据帧=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

我知道这可能是一个简单的任务,但在编码方面我很难弄清楚。请帮帮我


Tags: 数据name名称目标编码dffajohnson
1条回答
网友
1楼 · 发布于 2024-05-14 00:28:24

如果顺序很重要,请使用^{}并向前和向后填充缺少的值:

#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

如果不是,首先对两列进行排序,然后使用^{}

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

相关问题 更多 >