我有一个看起来像这样的系列:
s = pd.Series(
np.array([0, 0, 1, 1, 2, 2]),
index=np.array([ 0., 1., 2., 4., np.nan, 3.])
)
0.0 0
1.0 0
2.0 1
4.0 1
NaN 2
3.0 2
dtype: int64
你会注意到我要删除的索引中的NaN。删除该行的最有效方法是什么?
预期结果:
0.0 0
1.0 0
2.0 1
4.0 1
3.0 2
Name: 0, dtype: int64
目前的做法:
s.reset_index().dropna().set_index('index').squeeze()
答案 0 :(得分:3)
使用过滤:
print (s[s.index.notnull()])
或类似的:
print (s[~np.isnan(s.index)])
0.0 0
1.0 0
2.0 1
4.0 1
3.0 2
dtype: int32
答案 1 :(得分:3)
In [22]: s[s.index.notna()]
Out[22]:
0.0 0
1.0 0
2.0 1
4.0 1
3.0 2
dtype: int32
答案 2 :(得分:2)
s[s.index.dropna()]
Out:
0.0 0
1.0 0
2.0 1
4.0 1
3.0 2
dtype: int64