Meh*_*Meh 9 python numpy pandas
如何删除大熊猫中的主要NaN?
pd.Series([np.nan, np.nan, np.nan, 1, 2, np.nan, 3])
Run Code Online (Sandbox Code Playgroud)
我想从上面只删除前3个NaN,所以结果应该是:
pd.Series([1, 2, np.nan, 3])
Run Code Online (Sandbox Code Playgroud)
这是仅使用熊猫方法的另一种方法:
In [103]:
s = pd.Series([np.nan, np.nan, np.nan, 1, 2, np.nan, 3])
first_valid = s[s.notnull()].index[0]
s.iloc[first_valid:]
Out[103]:
3 1
4 2
5 NaN
6 3
dtype: float64
Run Code Online (Sandbox Code Playgroud)
因此,我们使用过滤系列notnull以获取第一个有效索引。然后用于iloc切片系列
编辑
正如@ajcr指出的那样,最好使用内置方法,first_valid_index因为这不会返回我在上面的答案中用来掩盖的临时序列:
In [104]:
s = pd.Series([np.nan, np.nan, np.nan, 1, 2, np.nan, 3])
s.iloc[s.first_valid_index():]
Out[104]:
3 1
4 2
5 NaN
6 3
dtype: float64
Run Code Online (Sandbox Code Playgroud)