有一个dataframe -这里我想找出最后一列填充,这既不是nan,null,blank也不是'Nope'每行明智的:
这里的输出是:
我尝试了apply,我以相反的顺序检查值是否为nan,null,blank或'Nope',然后删除列,否则中断循环并存储值。
我想找到一个更快的方法来做到这一点,因为我是新的Pandas
可复制输入:
df = pd.DataFrame({'a1': [1, 1, 1],
'a2': [float('nan'), 1, 1],
'a3': [1, 1, 1],
'a4': [1, 1, 1],
'a5': [1, 1, 1],
'a6': ['', 'Nope', 1],
'a7': ['', 1, '']})
2条答案
按热度按时间d5vmydt91#
对于矢量解决方案,您可以使用
isnull
/isin
构建掩码,然后在反向列上获取idxmax
:如果您更喜欢在没有匹配项时屏蔽:
输出量:
wj8zmpe12#
用
nan
替换被解释为nan
的内容,然后获取指向固定值的行沿着最后一个索引,如sequence.index[~sequence.isna()][-1]
:让我们看看发布的数据:
输出: