【发布时间】:2016-01-06 11:06:12
【问题描述】:
我有一个 python 列表,其中响应顺序很重要。我想过滤掉 nan 值,仅当它们出现在列表末尾时。我想知道是否有一种有效的方法可以从如下列表中获取:
nan = float("nan")
responses = [1.0, nan, 9.0, nan, nan, nan, nan, nan, nan, nan, nan]
到一个没有任何尾随 nan 值的列表:
[1.0, nan, 9.0]
我知道如何使用列表推导过滤掉所有 nan 值:
import pandas as pd
[r for r in responses if pd.notnull(r)]
>>> [1.0, 9.0]
但是在不将所有内容都转换为字符串并使用正则表达式的情况下,想不出一种直接过滤掉 nan 值的方法。我可以这样做,但我担心性能,这是一个问题,因为它会执行几十万次。
【问题讨论】: