我有一个数据帧,对于每一列,我需要找到第一个值小于5的索引.我找到了一个解决方案,它对单个列表/序列有效here,但不能以"pythony"的方式将其应用于整个数据帧,而不通过for循环将每个列分解为自己的变量.
Data = pd.DataFrame({0: [2,2,3,2,2,3,5],
1: [8,7,7,8,7,7,7],
2: [9,7,7,4,4,4,9]})
期望输出为[0999,3],其中999是未找到值的标志<;5.
next((x for x, val in enumerate(DataS) if val < 5),999)
但当我试图将其应用于所有专栏时,我无法使其发挥作用:
Data.apply(lambda x: next((x for x, val in enumerate(Data) if val < 5),999))
此代码为每列返回一个0值.有人能帮我理解为什么apply/lambda没有按照我认为他们应该的方式行事吗?
另外,此函数似乎也跳过了nan值.有没有其他方式来写这封信给flag nans?