我有一个数据框 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
答案 0 :(得分:3)
我们可以做的是尝试将groupby
与ffill
一起使用
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