如何通过匹配其他列中的值来填充列子集中的缺失值?

时间:2020-04-06 22:21:10

标签: python pandas lookup

我有一个数据框 auth.Use(auth.GetValidateTokenFunc("headerName")) 。 我想通过在df1 = DataFrame({'col1':['a','b','a','c'], 'col2':[1,2,1,1],'col3':['e1','e2',np.nan,'e5'],'col4':[4,5,6,6]})col3中查找值/匹配值来填充col1中的缺失值,以获得以下输出:

col2

其中col1 col2 col3 col4 a 1 e1 4 b 2 e2 5 a 1 e1 6 c 1 e5 6 col1列中的值a和1返回col2的e1

2 个答案:

答案 0 :(得分:3)

我们可以做的是尝试将groupbyffill一起使用

df1.fillna(df1.groupby(['col1','col2']).ffill(), inplace=True)
  col1  col2 col3  col4
0    a     1   e1     4
1    b     2   e2     5
2    a     1   e1     6
3    c     1   e5     6

答案 1 :(得分:2)

与YOBEN_S的答案非常相似(我更喜欢),但使用fillna

df.col3 = df.groupby(['col1', 'col2']).fillna(method='ffill').col3