【发布时间】:2021-07-18 16:05:07
【问题描述】:
我有一个这样的数据框 -
A B C
0 1 NaN 3.0
1 2 3.0 NaN
2 2 NaN NaN
3 NaN NaN 53
我需要找到每个索引的最后一个有效值的列名。例如对于上面的数据框,我想得到这样的输出。
['C','B','A','C]
我确实尝试获取列名,但只能通过在数据帧的转置上使用 iteritems() 来获取值。此外,由于它循环遍历数据框,我发现它不是非常理想的。请在下面找到我的方法
l_val = []
for idx, row in df.T.iteritems():
last_val = None
for x in row:
if not pd.isna(x):
last_val = x
l_val.append(last_val)
返回 -
[3.0, 3.0, 2.0]
我尝试了很多搜索,但大多数答案都提到了last_valid_index 方法,该方法将返回列中的最后一个有效索引,如果我可以使用它来解决我的问题,我不会得到。有人可以建议我任何快速的方法吗?
【问题讨论】: