下午好,我有一个数据框

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

关于python - Pandas /脾气暴躁-在另一列中填写缺失值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56924576/

10-11 20:30