在下面的数据框中,我想找出每一行中的最后一个值,以及包含最后一个值的列名。
df
ID c1 c4 c3 c2 c8 c7
1 1 2 2 1 NaN NaN
2 1 2 1 NaN NaN NaN
3 1 1 NaN NaN 2 1
预期输出
ID Colname lastValue
1 c2 1
2 c3 1
3 c7 1
我的代码只能找到最后一个值
df['lastValue'] = df.ffill(axis = 1).iloc[:, -1]
我怎样才能找到 colname?
谢谢!
最佳答案
last_valid_index
+lookup
s=df.apply(pd.Series.last_valid_index, 1)
df['Last']=df.lookup(s.index,s)
df['Col']=s
df
Out[49]:
ID c1 c4 c3 c2 c8 c7 Last Col
0 1 1 2 2.0 1.0 NaN NaN 1.0 c2
1 2 1 2 1.0 NaN NaN NaN 1.0 c3
2 3 1 1 NaN NaN 2.0 1.0 1.0 c7
关于python - 在数据框中找到最后一个值和相应的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49198387/